首页 文章

使用FF49和Python,Firefox驱动程序无法启动Selenium 3.0.1

提问于
浏览
1

我使用Python跟随Selenium Webdriver脚本 . 但是我得到了错误:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities.FIREFOX
caps["marionette"] = True
driver = webdriver.Firefox(capabilities=caps)

driver.get("http://www.mahsumakbas.net")

print driver.title

driver.close()

错误是:

Traceback(最近一次调用最后一次):文件“C:\ Mahsum \ DevelopmentWorkSpace \ Eclipse \ Java \ selenium_proj \ src \ hello.py”,第6行,在driver = webdriver.Firefox(capabilities = caps)文件“C:\在init self.service.start()文件“C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ common \”中的Python27 \ lib \ site-packages \ selenium \ webdriver \ firefox \ webdriver.py“,第135行service.py“,第71行,在启动os.path.basename(self.path),self.start_error_message)selenium.common.exceptions.WebDriverException:消息:'geckodriver'可执行文件需要在PATH中 . 异常AttributeError:“'服务'对象在>忽略中没有属性'process'”

Selenium Webdriver版本是: 3.0.1
Firefox: 49.0.2
geckodriver: v0.11.1-win64

我添加了geckodriver路径到Windows PATH变量 .

问题出在哪儿?

3 回答

  • 2

    您可以将'geckodriver'.exe放在Python的基本路径中,它将起作用 .

    或者,如果您希望拥有一个干净的Python文件夹,则必须在初始化时声明geckodriver的路径 . 每次运行脚本时都可以执行此操作,或者按照自己的说法执行PATH . 正如Naveen建议的那样,在正确保存PATH之前必须重新启动 . 您还可以尝试在Windows命令行中运行它:

    setx path "%path%;c:\path\to\geckodriver-folder"
    
  • 0

    最终代码就像跟随和工作:

    binary = FirefoxBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")
    driver = webdriver.Firefox(firefox_binary=binary)
    

    将没有文件名的geckodriver.exe的路径(仅放置它的文件夹)设置为PATH vairable .

    这一次,我有另一个问题:

    driver.close() 没有关闭firefox .
    当更改为 driver.quit() 时,它会关闭,但控制台上会显示以下行:

    'NoneType'对象没有属性'path'

    没有任何指示器显示它是警告或错误 . 只是自己排队 .

  • 0

    尝试添加firefox配置文件

    profile = webdriver.FirefoxProfile()
    webdriver.Firefox(capabilities=caps,firefox_profile=profile)
    

相关问题