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字符串详细介绍
May 09 Python
Python实现短网址ShortUrl的Hash运算实例讲解
Aug 10 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
Dec 15 Python
修改默认的pip版本为对应python2.7的方法
Nov 06 Python
python/sympy求解矩阵方程的方法
Nov 08 Python
Python使用pydub库对mp3与wav格式进行互转的方法
Jan 10 Python
python3 property装饰器实现原理与用法示例
May 15 Python
Python学习笔记之变量、自定义函数用法示例
May 28 Python
如何在python中实现随机选择
Nov 02 Python
Python实现密钥密码(加解密)实例详解
Apr 26 Python
Python-jenkins 获取job构建信息方式
May 12 Python
基于Python和openCV实现图像的全景拼接详细步骤
Oct 05 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安装为Apache DSO
2006/10/09 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
Google 地图事件实例讲解
2016/08/06 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
2017/03/13 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
Element中Slider滑块的具体使用
2020/07/29 Javascript
Node在Controller层进行数据校验的过程详解
2020/08/28 Javascript
javascript实现倒计时关闭广告
2021/02/09 Javascript
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
Python中的类学习笔记
2014/09/23 Python
利用Python开发实现简单的记事本
2016/11/15 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
python中def是做什么的
2020/06/10 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
大学生的网络创业计划书
2013/12/26 职场文书
代理班主任的自我评价
2014/02/04 职场文书
初一学生期末评语
2014/04/24 职场文书
机电一体化专业求职信
2014/07/22 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
综合素质评价个性发展自我评价
2015/03/06 职场文书
个人向公司借款协议书
2016/03/19 职场文书