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 相关文章推荐
关于你不想知道的所有Python3 unicode特性
Nov 28 Python
python将图片文件转换成base64编码的方法
Mar 14 Python
python通过post提交数据的方法
May 06 Python
Python 查看文件的编码格式方法
Dec 21 Python
运行django项目指定IP和端口的方法
May 14 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
解决Python一行输出不显示的问题
Dec 03 Python
简单易懂Pytorch实战实例VGG深度网络
Aug 27 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
Python实现生活常识解答机器人
Jun 28 Python
Python if else条件语句形式详解
Mar 24 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
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
php使用正则验证中文
2016/04/06 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
javascript实现二分查找法实现代码
2007/11/12 Javascript
js 文件引入实现代码
2010/04/23 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
2015/05/12 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
jQuery处理XML文件的几种方法
2016/06/14 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
基于ssm框架实现layui分页效果
2019/07/27 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
Python中使用logging模块打印log日志详解
2015/04/05 Python
Python3中使用PyMongo的方法详解
2017/07/28 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
python函数的作用域及关键字详解
2019/08/20 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
Pytorch 实现权重初始化
2019/12/31 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
Python API len函数操作过程解析
2020/03/05 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
2020/06/24 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
二审答辩状格式
2015/05/22 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python
详解pytorch创建tensor函数
2022/03/22 Python
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL