【问题标题】:Cannot set a system path for geckodriver using python无法使用 python 为 geckodriver 设置系统路径
【发布时间】:2017-06-07 13:18:21
【问题描述】:

我绝对不能为 firefox 的 geckodriver 设置系统路径。使用 osx,我在 Chrome 中可以正常工作:

driver = webdriver.Chrome('/Users/Robert/Applications/chromedriver')

但我需要 firefox 来设置个人资料,以便我可以自动登录公司网站等。所以我用 python 尝试了以下操作:

driver = webdriver.Firefox('/Users/Robert/Applications/geckodriver')
driver.get('http://www.google.com.au')

已更新到 firefox 50.x.x,尝试了不同的路径,重新下载并运行以下命令:

driver = webdriver.Firefox()

但仍然没有骰子。我绝对 100% 的位置是正确的

错误消息:没有这样的文件或目录。使用最新的python 2.7.xx

【问题讨论】:

  • 您确定要使用 Selenium 版本 3 以后的版本吗?据我所知,只有 Selenium 3.0 以上版本需要指定 Geckodriver 路径。另外,我不认为您使用 Geckodriver 路径启动 Firefox Webdriver;您必须将其设置为系统变量,然后正常启动 Firefox 驱动程序,即System.setProperty("webdriver.gecko.driver", "/Users/username/Downloads/geckodriver"); WebDriver driver = new FirefoxDriver();
  • 原来我必须直接在终端界面中将文件夹位置添加到我的系统路径中。我的系统路径现在超级长(因为我有点塞满了)这有关系吗?导出 PATH=$PATH

标签: python macos selenium firefox automated-tests


【解决方案1】:

我在将 selenium 使用的外部驱动程序放入系统路径中取得了很大的成功。如果可以在命令行调用,python就可以调用。

我当前的 .bashrc 有:

export FF_DRIVER_PATH='/Users/sel_user/Applications/geckodriver'
export CH_DRIVER_PATH='/Users/sel_user/Applications/chromedriver'
export PATH=$PATH:$FF_DRIVER:$CH_DRIVER_PATH

在带有 os 库的 python 中很容易做到: How to set environment variables in Python

【讨论】:

    【解决方案2】:

    嗯,FF/Selenium 场景改变了过去的“日子”。

    你有 3 个选项: 1- 将 geckodriver 添加到路径(系统路径),然后简单地运行 webdriver.Firefox() 2- 在脚本的根文件夹中添加 geckodriver,使其位于“路径上”,然后运行 ​​webdriver.Firefox() 3- 使用 FirefoxBinary() 属性,这里已经解释过:https://stackoverflow.com/a/25715497/2480481

    在我的情况下,我总是发送一份所涉及的驱动程序的副本,所以我并没有真正使用路径,或者我确实将子文件夹附加到脚本“内部”的路径。

    【讨论】:

      猜你喜欢
      • 2013-11-13
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      • 2013-06-06
      • 2017-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多