搞定webdriver

Posted python爱好部落

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搞定webdriver相关的知识,希望对你有一定的参考价值。

如今墙越来越深,连chrome也一直无法升级。当我们做web UI 自动化的时候,似乎又少了一种浏览器。在配chrome版本与chrome driver, 会有各种兼容性的问题。
好多同学会在chrome启动的时候,出现各种问题,包括我自己。

    现在chrome上跑selenium, 完全是拼人品。chrome不能更新,凡是与谷歌有关的东西,除了android系统,都在墙外。

万里长城长又长!
万里长城长又长!
万里长城长又长!

跑个最简单的case:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_id('kw').send_keys('selenium')
driver.find_element_by_id('su').click()
time.sleep(5)

Opoos! 直接抛出异常:

selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary
  (Driver info: chromedriver=2.4.226086,platform=Mac OS X 10.12.6 x86_64)

明显是不兼容,换chrome driver。
Opoos,好不容易浏览器打开了,却一直是空白页:


还是兼容性问题! 感觉电脑自买来就升级不了chrome, 得在升级chrome上下功夫。
虽然版本难找,但还是在某浪上找到了新版本,还能跟谷歌同步,看来还是大公司有特权。

成功了,What a fucking thing!

现在说说,使用selenium, 在各个平台上,如何启动浏览器。
Windows上:
chrome, 这个比较简单,去淘宝镜像下载一个chromedriver放到python的根目录下。

firefox, 以前selenium2 是不要装driver的,升级到selenium3以后需要装geckodriver。去github上下载一个geckodriver: https://github.com/mozilla/geckodriver/releases, 将geckodriver放到python的根目录下。

Mac上:
Chrome: 将解压后的chromedriver移动到/usr/local/bin目录下 ,否则在运行脚本时,会提示:

chromedriver executable needs to be in PATH

firefox:
geckodriver放到/usr/local/bin,或者在执行的时候,带路径,如:

  from selenium import webdriver  
  dr = webdriver.Firefox(executable_path= '/Users/anshushu/Downloads/geckodriver')

如果以上出现了兼容性问题,都可以参照我最上面的方法解决。

万里长城长又长,
开放chrome又何妨?
如今driver搞不定!
可请安叔来帮忙。

以上是关于搞定webdriver的主要内容,如果未能解决你的问题,请参考以下文章

css常用代码片段 (更新中)

剪辑音乐要很久?3行代码Python瞬间搞定

剪辑音乐要很久?3行代码Python瞬间搞定

Selenium JavascriptExecutor 详解

Selenium JavascriptExecutor 详解

利用python+seleniumUI自动化登录获取cookie后再去测试接口,今天终于搞定了