无法通过 python3 启动 Selenium Safari WebDriver

Unable to start Selenium Safari WebDriver via python3

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

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

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

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

在开发菜单中,我启用了 "allow Remote Automation"。

我正在使用 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'

感谢任何帮助!提前致谢!

我在 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

它应该可以解决问题。

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