我正在尝试使用Selenium的网络驱动程序访问网页,但是无论我使用哪种浏览器(Opera / Firefox / GoogleChrome),我都无法访问该网页。
在任何情况下,浏览器都会弹出并挂在那里,无法访问任何URL。
当我尝试运行脚本时,我得到了
selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service /usr/bin/[opera/chrome]
如果我使用Firefox,我会得到:
selenium.common.exceptions.WebDriverException: Message: Service /usr/bin/firefox unexpectedly exited. Status code was: 0
我的代码:
browser = webdriver.Firefox(executable_path=FIREFOX_PATH)
browser.get('www.google.com')
r = BeautifulSoup(browser.page_source, PARSER)
print(r.text)
我正在将Linux Ubuntu 18.04与python3.6配合使用
答案 0 :(得分:1)
自从您使用executable_path=FIREFOX_PATH
创建了网络驱动程序以来,我认为您可能已经混淆了Firefox二进制文件和geckodriver二进制文件路径的关键字参数。 webdriver.Firefox
期望:
firefox_binary
– Firefox二进制实例或Firefox二进制的完整路径。如果未定义,将使用系统默认的Firefox安装。executable_path
–覆盖用于Firefox 47.0.1及更高版本的geckodriver二进制文件的完整路径,默认为从系统路径中提取二进制文件。
因此,对于Firefox二进制文件firefox
,您需要设置关键字参数firefox_binary
。对于geckodriver二进制文件geckodriver
,您需要设置关键字参数executable_path
。
您是否甚至想要/需要使用默认二进制文件以外的文件?你可以跑
firefox --version
和
geckodriver --version
在您的终端中没有问题吗?然后,您根本不需要设置firefox_binary
或executable_path
。