3

按照一些关于 Selenium 的教程,我安装了geckodriver. 为了在 python 上运行一个简单的代码来运行 Selenium,我必须在命令行中指定这个路径:

export PATH=$PATH:/home/xx/Downloads/geckodriver-v0.24.0-linux64

但我希望 Selenium 打开我拥有的开发人员版本,因为它包含我要测试的扩展名:当我为开发人员版本可执行文件设置路径时:

export PATH=$PATH:/home/xx/Documents/ff_extension/firefox/

然后运行我的python脚本:

from selenium import webdriver
browser = webdriver.Firefox()

Selenium 仍会打开geckodriver浏览器。

问:如何指示 Selenium 运行 Firefox Dev。我指定的路径中的版本?

4

2 回答 2

2

Firefox Developer Edition浏览器未安装在常规Firefox浏览器安装的常规位置。在我的Windows 8框中,Firefox 开发者版浏览器安装在目录中:

C:\Program Files\Firefox Developer Edition

现在,在调用Firefox Developer Edition浏览器时,您需要通过参数传递Firefox Developer Edition 二进制文件的绝对路径,如下所示:firefox_binary

  • 代码块:

    from selenium import webdriver
    from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
    
    firefox_dev_binary = FirefoxBinary(r'C:\Program Files\Firefox Developer Edition\firefox.exe')
    driver = webdriver.Firefox(firefox_binary=firefox_dev_binary, executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
    driver.get('https://www.google.co.in')
    print("Page Title is : %s" %driver.title)
    # driver.quit()
    
  • 控制台输出:

    Page Title is : Google
    
  • 浏览器快照:

Firefox-开发者版


这个用例

Linux上,您需要提供以下绝对路径:

  • Firefox 开发者版二进制文件
  • GeckoDriver二进制文件

因此,您的有效代码块将是:

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

firefox_dev_binary = FirefoxBinary('/path/to/Firefox Developer Edition/firefox')
driver = webdriver.Firefox(firefox_binary=firefox_dev_binary, executable_path='/home/xx/Downloads/geckodriver-v0.24.0-linux64/geckodriver')
driver.get('https://www.google.co.in')
print("Page Title is : %s" %driver.title)
# driver.quit()
于 2019-02-19T09:09:37.320 回答
0

您可以FirefoxBinary按照此处所述使用: Setting path to firefox binary on windows with selenium webdriver

要设置 Firefox 的自定义路径,您需要使用 FirefoxBinary:

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('F:\FirefoxPortable\Firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary)
于 2019-02-18T20:33:04.630 回答