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处理python编码问题
Mar 13 Python
Python调用C语言开发的共享库方法实例
Mar 18 Python
Pandas标记删除重复记录的方法
Apr 08 Python
Falsk 与 Django 过滤器的使用与区别详解
Jun 04 Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 Python
python3的UnicodeDecodeError解决方法
Dec 20 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
Dec 22 Python
python查看矩阵的行列号以及维数方式
May 22 Python
python thrift 实现 单端口多服务的过程
Jun 08 Python
详解Python高阶函数
Aug 15 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 Python
一篇文章弄懂Python关键字、标识符和变量
Jul 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第一次无法获取cookie问题处理
2014/12/15 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
ECMAScript 基础知识
2007/06/29 Javascript
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
js判断上传文件后缀名是否合法
2016/01/28 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
2017/10/25 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
Python版微信红包分配算法
2015/05/04 Python
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
简单实现python画圆功能
2018/01/25 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
详解python中递归函数
2019/04/16 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
家长对学生的评语
2014/04/18 职场文书
简洁的英文求职信范文
2014/05/03 职场文书
数学系毕业生求职信
2014/05/29 职场文书
党的群众路线教育实践活动个人对照检查材料(校长)
2014/11/05 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
总经理司机岗位职责
2015/04/10 职场文书
思品教学工作总结
2015/08/10 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
hive数据仓库新增字段方法
2022/06/25 数据库