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中from module import * 的一个坑
Jul 20 Python
python获取指定目录下所有文件名列表的方法
May 20 Python
浅析Git版本控制器使用
Dec 10 Python
Python代码实现KNN算法
Dec 20 Python
使用python为mysql实现restful接口
Jan 05 Python
python 信息同时输出到控制台与文件的实例讲解
May 11 Python
对Python中plt的画图函数详解
Nov 07 Python
python顺序执行多个py文件的方法
Jun 29 Python
django中使用Celery 布式任务队列过程详解
Jul 29 Python
浅谈Python 参数与变量
Jun 20 Python
python RSA加密的示例
Dec 09 Python
Python os和os.path模块详情
Apr 02 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
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
php建立Ftp连接的方法
2015/03/07 PHP
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
JavaScript聚焦于第一个字段的代码
2010/10/15 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
2014/02/19 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
使用JQ来编写最基本的淡入淡出效果附演示动画
2014/10/31 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
js表单登陆验证示例
2016/10/19 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
Python中一些不为人知的基础技巧总结
2018/05/19 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
详解Python最长公共子串和最长公共子序列的实现
2018/07/07 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
人事专员岗位职责范本
2014/03/04 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
汽车技术服务与贸易专业求职信
2014/07/20 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
员工表扬信怎么写
2015/05/05 职场文书
侵犯商业秘密的律师函
2015/05/27 职场文书
教师节主题班会教案
2015/08/17 职场文书
事业单位岗位说明书
2015/10/08 职场文书