【问题标题】:selenium.common.exceptions.WebDriverException: Message: 'Geckodriver' executable may have wrong permissions using GeckoDriver Firefox Selenium Pythonselenium.common.exceptions.WebDriverException:消息:“Geckodriver”可执行文件可能使用 GeckoDriver Firefox Selenium Python 具有错误权限
【发布时间】:2018-03-22 19:28:17
【问题描述】:

当我尝试执行我的第一个 Selenium/python 代码时出现此错误。

selenium.common.exceptions.WebDriverException:消息:“Geckodriver”可执行文件可能具有错误的权限。

我的代码:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

if __name__ == '__main__':

    binary = FirefoxBinary('C:\Program Files (x86)\Mozilla Firefox\firefox.exe')
    driver = webdriver.Firefox(firefox_binary=binary,
                               executable_path="C:\\Users\\mohammed.asif\\Geckodriver")


    driver=webdriver.Firefox()

    driver.get("www.google.com");

【问题讨论】:

  • 如果您使用的是 linux 系统,请使用 which geckodriver 查找 geckodriver 可执行文件所在的路径。然后使用ll /path/to/geckodriver 显示权限。你应该有执行权。如果不这样做,请使用chmod +x /path/to/geckodriver 将执行权限授予所有用户。
  • @con-- 他正在使用 Windows,所以我认为建议的东西不会起作用
  • 你能不能试试把c以外的其他驱动放进去
  • @GaurangShah 是的,我尝试将 Geckodriver 保存在 D 驱动器中。但仍然出现同样的错误。
  • 显示二进制不是 firefox 可执行文件

标签: python selenium selenium-webdriver firefox geckodriver


【解决方案1】:

驱动路径设置不正确,需要设置路径到.exe,如下图所示

driver = webdriver.Firefox(firefox_binary=binary,
                               executable_path="C:\\Users\\mohammed.asif\\Geckodriver\\geckodriver.exe")

【讨论】:

  • 谢谢!但它导致我出现不同的错误 selenium.common.exceptions.WebDriverException:消息:无法找到一组匹配的功能
  • 检查一下这个示例程序是否在您的电脑上运行? from selenium import webdriver driver = webdriver.Firefox(executable_path='D:/Software/BrowsersDriver/GeckoDriver/geckodriver.exe')//相应地设置你的路径,y driver.get('google.com'
【解决方案2】:

首先根据@shohib,你的路径是错误的,它是正确的

driver = webdriver.Firefox(firefox_binary=binary,
                               executable_path="C:\\Users\\mohammed.asif\\Geckodriver\\geckodriver.exe")

对于这个错误

错误 selenium.common.exceptions.WebDriverException:消息:无法 找到一组匹配的功能

您需要正确组合 Firefox 和 Selenium Jars

要么更新 firefox 和 selenium jar,我建议使用

Firefox 50-52 和 Selenium 3.4.1

【讨论】:

    【解决方案3】:

    在通过 Selenium-Python 客户端使用 Selenium v​​3.6.0geckodriverMozilla Firefox 时,您需要从the repository 下载 geckodriver.exe 并将其放置在系统中的任何位置,并在初始化 geckodriver.exe 时通过其绝对路径提供参考 geckodriver.exe em>网络驱动程序。此外,如果您的系统上安装了多个 Mozilla Firefox 实例,您可以通过 Options() 提及预期的 Firefox 二进制文件的绝对路径,即firefox.exe,如下所示:

    from selenium import webdriver
    from selenium.webdriver.firefox.options import Options
    
    if __name__ == '__main__':
        binary = r'C:\Program Files\Mozilla Firefox\firefox.exe'
        options = Options()
        options.binary = binary
        browser = webdriver.Firefox(firefox_options=options, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe")
        browser.get('http://google.com/')
        browser.quit()
    

    【讨论】:

      【解决方案4】:

      让你的 geckodriver 可执行:

      sudo chmod +x geckodriver

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-11
        • 1970-01-01
        • 2019-06-13
        • 2018-09-27
        • 2021-12-26
        • 2022-01-19
        • 2021-01-10
        相关资源
        最近更新 更多