【问题标题】:Chrome Driver works but issues with GeckoDriverChrome 驱动程序有效,但 GeckoDriver 出现问题
【发布时间】:2017-07-27 19:04:58
【问题描述】:

我正在编写一个脚本来为我正在进行的项目下载文件。我的公司在 Chrome 上屏蔽了该网站,但不使用 FireFox,所以我决定尝试 Geckodriver,但一直遇到这个问题:

AttributeError: module 'selenium.webdriver' has no attribute 'FireFox'

这是我的代码:

import selenium.webdriver as webdriver
from selenium.webdriver import firefox
import os

def init_driver():
    driver = 
webdriver.FireFox(r"C:\Users\Michael.Spencer\Documents\geckodriver.exe")
    driver.wait = webdriver.support.ui.WebDriverWait(driver, 5)
    return driver

def download(driver):

    driver.get("http://www.google.com")

def main():
    driver = init_driver()
    download(driver)
    driver.close()

main()

如果我使用,这很好用

webdrive.Chrome(r"C:\Users\Michael.Spencer\Documents\chromedriver.exe")

当我开始输入时,Firefox 甚至会弹出,所以此时我不知道如何继续。

【问题讨论】:

  • 您可以尝试将您的两个导入语句更改为from selenium import webdriver吗?
  • 我通过 gmail 将脚本发送到我的个人计算机,当复制并粘贴到 notepad++ 时它运行良好。但是,如果我删除 driver = webdriver.FireFox() 行,然后重新键入它,我会得到相同的属性错误。我尝试将空格转换为制表符,将制表符转换为空格,没有区别。这似乎是非常奇怪的行为,并且此属性错误似乎不正确,因为它在复制和粘贴时工作正常。会不会是我运行的 selenium (3.4.3) 版本与我的 FireFox (54.0.1) 版本不同步?
  • Chrome()、Ie() 和 PhantomJS() 都可以正常工作,所以我猜 FireFox.() 在过渡到 geckodriver.exe 时正在修复一些错误?跨度>

标签: python-3.x selenium geckodriver


【解决方案1】:

试试这个,我可能错了,但它可能是你导入的方式

from selenium import webdriver
driver = webdriver.Firefox()

【讨论】:

  • 我可以从“selenium.webdriver import firefox”做。但是当我尝试 webdriver.FireFox(r'C:\my\path\geckodrive.exe') 时,我仍然会遇到同样的错误。那么除了“FireFox”之外,我还应该使用其他名称吗?
  • 有趣!当我将您的代码复制到我的 IDE 时,它给了我您面临的相同错误。所以删除了所有导入并输入了'from selenium import webdriver',仍然是同样的错误。然后删除 webdriver.Firefox 行并再次输入,错误消失了。我不知道它为什么会这样,但你可以试试
  • 将 geckodriver 添加到 Anaconda>>Library>>bin,似乎有帮助。我现在收到此错误:WebDriverException:无法找到一组匹配的功能。这可能与我的公司代理有关,我将不得不在我的家用计算机上尝试该脚本。有意思的是chromedriver.exe可以在任何地方只要你指定路径,而geckodriver.exe不行。
猜你喜欢
  • 1970-01-01
  • 2017-03-20
  • 2020-06-16
  • 2016-06-30
  • 2021-08-06
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 2015-06-19
相关资源
最近更新 更多