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判断操作系统类型代码分享
Nov 22 Python
优化Python代码使其加快作用域内的查找
Mar 30 Python
python爬虫之BeautifulSoup 使用select方法详解
Oct 23 Python
sublime python3 输入换行不结束的方法
Apr 19 Python
利用Python将文本中的中英文分离方法
Oct 31 Python
Python GUI编程完整示例
Apr 04 Python
将python文件打包成EXE应用程序的方法
May 22 Python
Python 识别12306图片验证码物品的实现示例
Jan 20 Python
Python3.8安装Pygame教程步骤详解
Aug 14 Python
Python私有属性私有方法应用实例解析
Sep 15 Python
如何利用python 读取配置文件
Jan 06 Python
python基础之//、/与%的区别详解
Jun 10 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中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
php-msf源码详解
2017/12/25 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
不得不分享的JavaScript常用方法函数集(下)
2015/12/25 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
AngularJS中的表单简单入门
2016/07/28 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
vue3.0 上手体验
2020/09/21 Javascript
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
简单介绍Python中的round()方法
2015/05/15 Python
Python中的is和==比较两个对象的两种方法
2017/09/06 Python
Python实现简单的语音识别系统
2017/12/13 Python
python中的decimal类型转换实例详解
2019/06/26 Python
python 实现绘制整齐的表格
2019/11/18 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
详解Django中异步任务之django-celery
2020/11/05 Python
HTML5 canvas基本绘图之绘制五角星
2016/06/27 HTML / CSS
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
法学毕业生自荐信
2013/11/13 职场文书
往来会计岗位职责
2013/12/19 职场文书
自我鉴定总结
2014/03/24 职场文书
人资专员岗位职责
2014/04/04 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书