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脚本实现网卡流量监控
Feb 14 Python
python实现从网络下载文件并获得文件大小及类型的方法
Apr 28 Python
CentOS下使用yum安装python-pip失败的完美解决方法
Aug 16 Python
Python中利用xpath解析HTML的方法
May 14 Python
基于numpy中数组元素的切片复制方法
Nov 15 Python
Python+OpenCV图片局部区域像素值处理改进版详解
Jan 23 Python
Python 2/3下处理cjk编码的zip文件的方法
Apr 26 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
Sep 06 Python
python 初始化一个定长的数组实例
Dec 02 Python
pycharm 设置项目的根目录教程
Feb 12 Python
Python ATM功能实现代码实例
Mar 19 Python
Python Json数据文件操作原理解析
May 09 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 面向对象 final类与final方法
2010/05/05 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
php统计数组元素个数的方法
2015/07/02 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
js简单时间比较的方法
2016/08/02 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
2017/09/22 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
浅谈JavaScript窗体Window.ShowModalDialog使用
2020/07/22 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
对Python3之进程池与回调函数的实例详解
2019/01/22 Python
Python自定义函数计算给定日期是该年第几天的方法示例
2019/05/30 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
2020/01/19 Python
python3中sys.argv的实例用法
2020/04/24 Python
python三引号如何输入
2020/07/06 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
社会工作专业求职信
2014/07/15 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
全陪导游词
2015/02/04 职场文书
实习单位推荐信
2015/03/27 职场文书
Python之matplotlib绘制饼图
2022/04/13 Python
Win Server2016远程桌面如何允许多用户同时登录
2022/06/10 Servers