selenium3.x 踏坑记
来源:互联网 发布:网络语言膜法什么意思 编辑:程序博客网 时间:2024/06/06 02:19
Selenium 3.x 出来也有段时间了,有哪些坑呢?
有好长一段时间没有用selenium了。最近想用来做个web自动化的小工具。根据以往经验,firefox是不需要下载driver的。启动firefox. 立即抛出一个异常。
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH
搜索得知:
1. selenium 3.x开始,webdriver/firefox/webdriver.py的init中,executable_path=”geckodriver”;而2.x是executable_path=”wires”
2. firefox 47以上版本,需要下载第三方driver
有没搞错,firefox也需要装driver了!
windows
下载解压后将getckodriver.exe复制到Firefox的安装目录下,
设置path,或者:
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile driver = webdriver.Firefox(executable_path="C:\Program Files (x86)\Mozilla Firefox\geckodriver.exe")
mac:
可以用: brew install geckodriver
或者下载
把解压缩后的文件放到/usr/local/bin里面
from selenium import webdriverfrom selenium.webdriver.firefox.firefox_binary import FirefoxBinarybinary = FirefoxBinary('/Applications/Firefox.app/Contents/MacOS/firefox-bin')browser = webdriver.Firefox(firefox_binary=binary)
Chrome就不用说了,直接下载一个driver, 一般直接放在python的路径下,找起来方便。
有的时候,加载图片,CSS等很慢,其实我们并不需要都加载完全,可以禁止掉
那么代码可以写成这样。
from selenium import webdriverimport sitefrom selenium.webdriver.chrome.options import Optionsfrom selenium.webdriver.firefox.firefox_profile import FirefoxProfile def get_python_location(self): return site.getsitepackages()[0] def get_driver(self): if os.path.exists(os.path.join(self.get_python_location(), 'chromedriver.exe')): chrome_options = Options() chrome_options.add_experimental_option("prefs", {'profile.manage_default_content_settings.images': 2}) driver = webdriver.Chrome(os.path.join(self.get_python_location(), 'chromedriver.exe'), chrome_options=chrome_options) else: firefoxProfile = FirefoxProfile() firefoxProfile.set_preference('permissions.default.stylesheet', 2) firefoxProfile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so', 'false') firefoxProfile.set_preference('permissions.default.image', 2) driver = webdriver.Firefox(firefoxProfile,executable_path="C:\Program Files (x86)\Mozilla Firefox\geckodriver.exe") return driver
用phantomjs也可以,直接这样:
driver = webdriver.PhantomJS(service_args=['--load-images=false'])
这样,加载速度就可以快很多了。
更多精彩,请关注 微信公众号:python爱好部落
阅读全文
0 0
- selenium3.x 踏坑记
- selenium3.x 系列篇之一:change list
- selenium3.x系列篇之四-chromedriver
- 使用selenium3.X启动firefox浏览器
- 使用selenium3.X启动chrome浏览器
- selenium3.x 系列篇之二:本地模式
- selenium3.x 系列篇之三:远程模式
- Selenium3.x Python实现鼠标悬停的几种方法
- 基于selenium3+python3.6.x+chrome57.x的自动化测试环境搭建
- Selenium3 浅尝
- Selenium Webdriver学习记录(一):环境搭建(Java+Maven+Eclipse+Selenium3.x)+第一个测试demo+部分问题解决
- Selenium Webdriver学习记录(一):环境搭建(Java+Maven+Eclipse+Selenium3.x)+第一个测试demo+部分问题解决
- Atitit selenium3 新特性
- python2.7+Selenium3+firefox49
- Selenium3.0 自动化测试
- python3+selenium3 环境搭建
- selenium3填坑
- Python+Selenium3最新配置
- AsyncTask获取网络数据
- JSONObject、JSONArray
- Git分支管理的策略梳理
- 教大家如何区分屏蔽数据线的好坏
- 微信小程序笔记心得
- selenium3.x 踏坑记
- 【dijkstra + 优先队列 && bfs && A*】POJ
- somnic各应用下载目录
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- LA 3720 Highway n x m的点阵 有多少条直线穿过至少2个点
- POJ 1012 Joseph
- Max Sum Plus Plus HDU
- mysql索引的长度问题
- 【VS】控制台程序,更改系统默认图标。