我正在尝试将 Python 与 Selenium 一起使用来编写 Firefox 脚本,并在他们的网站上给出了示例:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("selenium")
elem.send_keys(Keys.RETURN)
assert "Google" in driver.title
driver.close()
当我运行这段代码时,它成功地打开了一个新的 Firefox 窗口,但是没有任何反应。浏览器是响应式的,可以加载其他页面,但 Selenium 出于某种原因拒绝与它合作。
当我退出 Python 脚本时,输出如下:
^CTraceback (most recent call last):
File "ha.py", line 5, in <module>
driver = webdriver.Firefox()
File "/usr/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 46, in __init__
self.binary, timeout),
File "/usr/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 46, in __init__
self.binary.launch_browser(self.profile)
File "/usr/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 44, in launch_browser
self._wait_until_connectable()
File "/usr/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 89, in _wait_until_connectable
time.sleep(1)
KeyboardInterrupt
它似乎进入了函数中的无限循环_wait_until_connectable
。
似乎是什么导致了这个问题,我怎样才能让 Selenium 使 Firefox 变得“可连接”?
我浏览了firefox_binary.py
源代码,注意到它在评论中提到了一个“扩展”。我应该在 Firefox 中安装一些支持交互的扩展吗?