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下使用Psyco模块优化运行速度
Apr 05 Python
Python MySQLdb模块连接操作mysql数据库实例
Apr 08 Python
剖析Python的Tornado框架中session支持的实现代码
Aug 21 Python
浅谈Python2获取中文文件名的编码问题
Jan 09 Python
python矩阵转换为一维数组的实例
Jun 05 Python
python实现多张图片拼接成大图
Jan 15 Python
Django后端发送小程序微信模板消息示例(服务通知)
Dec 17 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
Feb 28 Python
python里的单引号和双引号的有什么作用
Jun 17 Python
获取python运行输出的数据并解析存为dataFrame实例
Jul 07 Python
python爬取某网站原图作为壁纸
Jun 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
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
php获取ip及网址的简单方法(必看)
2017/04/01 PHP
php实现文章评论系统
2019/02/18 PHP
一行代码告别document.getElementById
2012/06/01 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
JSON格式化输出
2014/11/10 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
node.js连接mysql与基本用法示例
2019/01/05 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
Python程序退出方式小结
2017/12/09 Python
python适合人工智能的理由和优势
2019/06/28 Python
django中media媒体路径设置的步骤
2019/11/15 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
环境工程专业自荐信
2014/03/03 职场文书
2014年母亲节寄语
2014/05/07 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
停课通知书
2015/04/24 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
力克胡哲观后感
2015/06/10 职场文书
初中军训感想
2015/08/07 职场文书
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers