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 21 Python
在Python中执行系统命令的方法示例详解
Sep 14 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
Apr 27 Python
win7 x64系统中安装Scrapy的方法
Nov 18 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
python利用跳板机ssh远程连接redis的方法
Feb 19 Python
python实现远程控制电脑
May 23 Python
PyQt5固定窗口大小的方法
Jun 18 Python
python tkinter图形界面代码统计工具(更新)
Sep 18 Python
解析Python3中的Import
Oct 13 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
Python 文本滚动播放器的实现代码
Apr 25 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
PHPEXCEL 使用小记
2013/01/06 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
javascript parseInt 函数分析(转)
2009/03/21 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
js数组转json并在后台对其解析具体实现
2013/11/20 Javascript
详解JS面向对象编程
2016/01/24 Javascript
原生JS实现图片翻书效果
2017/02/16 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
JavaScript内置对象之Array的使用小结
2020/05/12 Javascript
[01:20:06]TNC vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python装饰器decorator介绍
2014/11/21 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
Python面向对象类的继承实例详解
2018/06/27 Python
使用pip发布Python程序的方法步骤
2018/10/11 Python
python实现AES加密和解密
2019/03/27 Python
python的debug实用工具 pdb详解
2019/07/12 Python
Django values()和value_list()的使用
2020/03/31 Python
详解python metaclass(元类)
2020/08/13 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
波兰最早的运动鞋精品店之一:Street Supply
2019/08/29 全球购物
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
总经理秘书岗位职责
2014/03/17 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
超市采购员岗位职责
2015/04/07 职场文书
三八节活动主持词
2015/07/04 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL
win11无法添加打印机怎么办? 提示windows无法打开添加打印机的解决办法
2022/04/05 数码科技