Python Selenium Webdriver无法为浏览器加注星标:权限被拒绝

时间:2016-10-20 14:02:53

标签: python selenium firefox selenium-webdriver

我想运行一个带有selenium的firefox webdriver,这样我就可以在网络爬虫中保留登录请求。我从这个stackoverflow解决方案link得到了这个想法,因为带有请求的登录由于几个原因不起作用。我总是收到错误,因为权限被拒绝,浏览器无法启动。这是我的代码:

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

binary=FirefoxBinary("/path/to/firefox")
fp=webdriver.FirefoxProfile("path/to/extra/profile")


url="www.python.org"
driver = webdriver.Firefox(fp,  firefox_binary=binary, executable_path="path/to/geckodriver.exe")
driver.get(url)

错误如下:

selenium.common.exceptions.WebDriverException: Message: Failed to start browser:
permission denied

有人可以帮忙吗?我一直在网上搜索多年但却找不到任何东西......谢谢!

5 个答案:

答案 0 :(得分:10)

我正在努力让Selenium 3为Firefox工作,并且遇到一个又一个错误消息。下载geckodriver并将其添加到系统路径后,最后一个错误是您看到的同一权限被拒绝的问题。经过相当多的搜索并拼凑在一起后,最终工作的是将firefox.exe添加到路径中。

这是完整的脚本:

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

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

driver.get('http://www.google.com')

希望这也适合你。

答案 1 :(得分:2)

在Mac OS X上,您需要指向实际的Firefox bin而不仅仅是Firefox.app。至少那对我有用。

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary('/Users/YOUR_USERNAME/Applications/Firefox.app/Contents/MacOS/firefox-bin')
driver = webdriver.Firefox(firefox_binary=binary)

答案 2 :(得分:1)

在Windows上的路径中使用双反斜杠:

binary = FirefoxBinary(r'C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe')

答案 3 :(得分:0)

在带有Selenium 3.14.1的Windows 10上,以下代码对我有用。

binary = FirefoxBinary(r'C:\\Program Files\\Mozilla Firefox\\firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary, 
executable_path='C:\\Tools\\Selenium\\geckodriver.exe')
driver.get("https://www.python.org")

希望这会有所帮助。

答案 4 :(得分:0)

更新您机器上的 Firefox 浏览器并下载最新的 Gecko 驱动程序。这对我很有效。