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获取CPU和内存信息的思路与实现(linux系统)
Jan 03 Python
Python通过解析网页实现看报程序的方法
Aug 04 Python
使用Python编写类UNIX系统的命令行工具的教程
Apr 15 Python
python和bash统计CPU利用率的方法
Jul 10 Python
python 排序算法总结及实例详解
Sep 28 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
Apr 18 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
Apr 21 Python
详解Django-auth-ldap 配置方法
Dec 10 Python
Django实现学生管理系统
Feb 26 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
Django QuerySet查询集原理及代码实例
Jun 13 Python
Python基础详解之邮件处理
Apr 28 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 mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
PHP未登录自动跳转到登录页面
2016/12/21 PHP
PHP设计模式之工厂模式详解
2017/10/24 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
js判断某个字符出现的次数的简单实例
2016/06/03 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
Vue.js 递归组件实现树形菜单(实例分享)
2016/12/21 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
JavaScript之json_动力节点Java学院整理
2017/06/29 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
将RGB值转换为灰度值的简单算法
2019/10/09 Javascript
js实现翻牌小游戏
2020/07/31 Javascript
python自定义类并使用的方法
2015/05/07 Python
python框架中flask知识点总结
2018/08/17 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
Python中内建模块collections如何使用
2020/05/27 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
CSS实现的一闪而过的图片闪光效果
2014/04/23 HTML / CSS
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
《乞巧》教学反思
2014/02/27 职场文书
政工例会汇报材料
2014/08/26 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
教师个人自我评价
2015/03/04 职场文书
使用feign服务调用添加Header参数
2021/06/23 Java/Android