【问题标题】:Selenium not actually controlling FirefoxSelenium 实际上并没有控制 Firefox
【发布时间】:2017-11-20 14:37:41
【问题描述】:

我真的不确定我的程序出了什么问题。它上周运行,我什至没有更改任何代码,但是现在当我运行我的爬虫时,firefox 打开后,很长一段时间没有任何反应,然后我收到以下错误

Traceback (most recent call last):
File "C:/Users/usernameredracted/PycharmProjects/scraper - Copy/demospider.py", line 179, in <module>
scrapeit()
File "C:/Users/usernameredracted/PycharmProjects/scraper - Copy/demospider.py", line 47, in scrapeit
driver = init_driver()
File "C:/Users/usernameredracted/PycharmProjects/scraper - Copy/demospider.py", line 16, in init_driver
driver = webdriver.Firefox()
File "C:\Users\usernameredracted\AppData\Roaming\Python\Python36\site-packages\selenium\webdriver\firefox\webdriver.py", line 155, in __init__
keep_alive=True)
File "C:\Users\usernameredracted\AppData\Roaming\Python\Python36\site-packages\selenium\webdriver\remote\webdriver.py", line 92, in __init__
self.start_session(desired_capabilities, browser_profile)
File "C:\Users\usernameredracted\AppData\Roaming\Python\Python36\site-packages\selenium\webdriver\remote\webdriver.py", line 179, in start_session
response = self.execute(Command.NEW_SESSION, capabilities)
File "C:\Users\usernameredracted\AppData\Roaming\Python\Python36\site-packages\selenium\webdriver\remote\webdriver.py", line 238, in execute
self.error_handler.check_response(response)
File "C:\Users\usernameredracted\AppData\Roaming\Python\Python36\site-packages\selenium\webdriver\remote\errorhandler.py", line 193, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: connection refused

我尝试了 (selenium.common.exceptions.WebDriverException: Message: connection refused) 中列出的解决方案,但这给了我一个不同的错误

OSError=[WinError 2] The system cannot find the file specified
Program install error! 

有什么建议吗?

【问题讨论】:

  • 你能分享你的代码试用版吗?
  • @AK47 我去更新了 Selenium,但我仍然遇到同样的问题,所以不可能。

标签: python selenium firefox


【解决方案1】:

试试这个。

首先更新 selenium:pip install -U selenium 然后更新你的 geckodriver

https://github.com/mozilla/geckodriver/releases

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = False
driver = webdriver.Firefox(capabilities=firefox_capabilities)

https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver

使用 Selenium 3.0 及更高版本,您无需执行任何操作即可使用 Marionette,因为它默认启用。

这可能是木偶中的一些未知错误,尝试使用上面的代码禁用它以使用好的旧 geckodriver,如果失败也向我们显示提示。

【讨论】:

    猜你喜欢
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2023-01-21
    相关资源
    最近更新 更多