我在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:\买合苏木\ DevelopmentWorkSpace \ Eclipse的\爪哇\ selenium_proj \ SRC \ hello.py&#34 ;, 第6行,在 driver = webdriver.Firefox(capabilities = caps)File" C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ firefox \ webdriver.py", 第135行,在 init 中 self.service.start()File" C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py", 第71行,开始 os.path.basename(self.path),self.start_error_message)selenium.common.exceptions.WebDriverException:消息:' geckodriver' 可执行文件需要在PATH中。
例外属性错误:"'服务'对象没有属性 '处理'"在> 忽略
Selenium Webdriver版本是: 3.0.1
Firefox: 49.0.2
geckodriver: v0.11.1-win64
我在Windows PATH变量中添加了geckodriver路径。
问题出在哪里?
答案 0 :(得分:2)
你可以将'geckodriver'.exe放在Python的基本路径中,它会起作用。
或者,如果您希望拥有一个干净的Python文件夹,则必须在初始化时声明geckodriver的路径。每次运行脚本时都可以执行此操作,或者按照自己的说法执行PATH。正如Naveen建议的那样,在正确保存PATH之前必须重新启动。您也可以尝试在Windows命令行中运行它:
setx path "%path%;c:\path\to\geckodriver-folder"
答案 1 :(得分: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'对象没有属性'路径'
没有任何指示器显示它是警告或错误。只是排队。
答案 2 :(得分:0)
尝试添加firefox个人资料
tce=loop1
答案 3 :(得分: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()