无法通过python3启动Selenium Safari WebDriver

时间:2018-03-07 17:47:16

标签: python selenium safari safaridriver

我想使用Safari作为python的浏览器,代码相当简单:

from selenium import webdriver
driver = webdriver.Safari()
url = 'https://www.gmail.com/'
driver.get(url)

我使用的是最新版本的Safari,11.0.3,

在首选项扩展程序中,我安装了WebDriver,

在菜单开发中,我已经允许远程自动化"启用。

我使用的是python 3.5,selenium 3.10.0

在运行上面的代码时,我收到以下错误消息:

Traceback (most recent call last):
  File "/Users/hwang/Documents/Lumi_personal/Coding/sandbox/testSelenium.py", line 2, in <module>
driver = webdriver.Safari()

File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/safari/webdriver.py", line 49, in __init__
self.service.start()

AttributeError: 'WebDriver' object has no attribute 'service'

任何帮助表示赞赏!提前谢谢!

3 个答案:

答案 0 :(得分:6)

我对selenium 3.10有同样的问题,但没有3.9。

显然,版本3.10中的错误根据:https://github.com/SeleniumHQ/selenium/issues/5578

我的临时解决方案是卸载selenium 3.10,并安装3.9:

pip uninstall selenium
pip install selenium==3.9

它应该解决问题。

答案 1 :(得分:0)

您需要传递参数executable_path以及 safaridriver 二进制文件的绝对路径,如下所示:

from selenium import webdriver

driver = webdriver.Safari(executable_path='/path/to/safaridriver')
driver.get('https://www.google.co.in')

答案 2 :(得分:0)

您还可以通过添加第25行和第49行来“修补”Safari webdriver https://github.com/SeleniumHQ/selenium/commit/2a0f63d19bd6e666ad432ee459762489d6b6033a