0

我使用 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()

错误是:

回溯(最后一次调用):文件“C:\Mahsum\DevelopmentWorkSpace\Eclipse\Java\selenium_proj\src\hello.py”,第 6 行,在驱动程序 = webdriver.Firefox(capabilities=caps) 文件“C:\Python27 \lib\site-packages\selenium\webdriver\firefox\webdriver.py”,第 135 行,在init self.service.start() 文件“C:\Python27\lib\site-packages\selenium\webdriver\common\service .py",第 71 行,在 start os.path.basename(self.path), self.start_error_message) selenium.common.exceptions.WebDriverException:消息:'geckodriver' 可执行文件需要在 PATH 中。

异常 AttributeError:“'Service' 对象在 > 中没有属性 'process'”被忽略

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

我将 geckodriver 路径添加到 Windows PATH 变量。

问题出在哪里?

4

4 回答 4

2

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

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

setx path "%path%;c:\path\to\geckodriver-folder"
于 2016-11-07T08:23:14.153 回答
0

最终代码就像遵循和工作:

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

将不带文件名的 geckodriver.exe 的路径(仅放置它的文件夹)设置为 PATH 变量。

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

driver.close() 不会关闭 Firefox。
当更改为driver.quit()时,它会关闭,但控制台上会出现以下行:

“NoneType”对象没有属性“路径”

没有任何指示器显示它是警告还是错误。就自己排队吧。

于 2016-11-07T10:48:09.037 回答
0

尝试添加firefox配置文件

profile = webdriver.FirefoxProfile()
webdriver.Firefox(capabilities=caps,firefox_profile=profile)
于 2016-11-10T13:55:23.160 回答
0
from selenium import webdriver

# To Run on FireFox Browser
self.driver = webdriver.Firefox(executable_path="C:/Drivers/geckodriver.exe")

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

print(driver.title)
driver.close()
于 2020-06-17T11:58:18.380 回答