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实现超简单端口转发的方法
Mar 13 Python
Python multiprocessing模块中的Pipe管道使用实例
Apr 11 Python
基于python时间处理方法(详解)
Aug 14 Python
Python实现加载及解析properties配置文件的方法
Mar 29 Python
Python整数对象实现原理详解
Jul 01 Python
Django logging配置及使用详解
Jul 23 Python
python修改字典键(key)的方法
Aug 05 Python
python3.6编写的单元测试示例
Aug 17 Python
Django 框架模型操作入门教程
Nov 05 Python
wxPython之wx.DC绘制形状
Nov 19 Python
python自动脚本的pyautogui入门学习
Apr 01 Python
python 通过文件夹导入包的操作
Jun 01 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代码
2012/09/14 PHP
PHP的password_hash()使用实例
2014/03/17 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
Aster vs Newbee BO3 第三场2.18
2021/03/10 DOTA
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
2008/09/25 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
js倒计时抢购实例
2015/12/20 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
python 的列表遍历删除实现代码
2020/04/12 Python
Zabbix实现微信报警功能
2016/10/09 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
Python简单读写Xls格式文档的方法示例
2018/08/17 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
python属于解释语言吗
2020/06/11 Python
numba提升python运行速度的实例方法
2021/01/25 Python
美国单身专业人士在线约会网站:EliteSingles
2019/03/19 全球购物
什么是事务?为什么需要事务?
2012/01/09 面试题
求职信写作要突出重点
2014/01/01 职场文书
寄语十八大感言
2014/02/07 职场文书
教师作风建设剖析材料
2014/10/11 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
python中sys模块的介绍与实例
2021/04/17 Python
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL