linux 下selenium chrome使用详解


Posted in Python onApril 02, 2020

安装chrome

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum install ./google-chrome-stable_current_x86_64.rpm
yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts

安装chromedriver

淘宝源(推荐)

wget http://npm.taobao.org/mirrors/chromedriver/2.41/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
move chromedriver /usr/bin/
chmod +x /usr/bin/chromedriver

编写selenium自动化脚本

#!/usr/bin/python
# -*-coding:utf-8-*-

import re, os
import json
import time
import random
import requests
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support.wait import TimeoutException
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.select import Select

binary_location = '/usr/bin/google-chrome'
chrome_driver_binary = '/usr/bin/chromedriver'

chrome_options = Options()
chrome_options.binary_location = binary_location
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--disable-dev-shm-usage')

chromedriver = chrome_driver_binary
os.environ["webdriver.chrome.driver"] = chromedriver

BROWSER = webdriver.Chrome(executable_path='/usr/bin/chromedriver', chrome_options=chrome_options)

WAIT = WebDriverWait(BROWSER, 5)
URL = "http://www.baidu.com"
BROWSER.get(URL)
..........

踩到的坑一:

中文乱码,解决方法:

centos:

yum groupinstall fonts

ubuntu:

sudo apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy

踩到的坑二:

不能截图,抛time out异常

selenium.common.exceptions.TimeoutException: Message: timeout: Timed out receiving message from renderer: 10.000

解决方法:

options = webdriver.ChromeOptions()
options.add_argument("--headless")
options.add_argument("start-maximized")
options.add_argument("enable-automation")
options.add_argument("--no-sandbox")
options.add_argument("--disable-infobars")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--disable-browser-side-navigation")
options.add_argument("--disable-gpu")
driver = webdriver.Chrome(chrome_options=options)
driver.set_window_size(1024, 768)
driver.get_screenshot_as_file(STATIC_FOLDER + home_img_url)
driver.close()

到此这篇关于linux 下selenium chrome使用详解的文章就介绍到这了,更多相关linux selenium chrome内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python在多玩图片上下载妹子图的实现代码
Aug 13 Python
python在windows下创建隐藏窗口子进程的方法
Jun 04 Python
python 写入csv乱码问题解决方法
Oct 23 Python
Python排序算法之选择排序定义与用法示例
Apr 29 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
python爬取网易云音乐评论
Nov 16 Python
Python获取航线信息并且制作成图的讲解
Jan 03 Python
解决pycharm的Python console不能调试当前程序的问题
Jan 20 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
Jun 27 Python
django 中QuerySet特性功能详解
Jul 25 Python
Python实现计算长方形面积(带参数函数demo)
Jan 18 Python
python实现手势识别的示例(入门)
Apr 15 Python
Python HTTP下载文件并显示下载进度条功能的实现
Apr 02 #Python
python实现将range()函数生成的数字存储在一个列表中
Apr 02 #Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 #Python
python求前n个阶乘的和实例
Apr 02 #Python
python实现将字符串中的数字提取出来然后求和
Apr 02 #Python
python对指定字符串逆序的6种方法(小结)
Apr 02 #Python
在python中实现求输出1-3+5-7+9-......101的和
Apr 02 #Python
You might like
PHP的FTP学习(二)
2006/10/09 PHP
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
PHP HTML代码串截取代码
2008/12/29 PHP
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
分享一段php获取linux服务器状态的代码
2014/05/27 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
JS跨域总结
2012/08/30 Javascript
解析页面加载与js函数的执行 onload or ready
2013/12/12 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
vue-router单页面路由
2017/06/17 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
[04:22]DSPL第二期精彩集锦:残血反杀!
2014/12/10 DOTA
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
python实现飞机大战项目
2020/03/11 Python
python实现udp传输图片功能
2020/03/20 Python
python实现三壶谜题的示例详解
2020/11/02 Python
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
幼儿园教师教学反思
2014/02/06 职场文书
项目建议书怎么写
2014/05/15 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
房屋维修协议书范本
2014/09/25 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书