带有硒的 Firefox 空白网页浏览器
Posted
技术标签:
【中文标题】带有硒的 Firefox 空白网页浏览器【英文标题】:Firefox blank webbrowser with selenium 【发布时间】:2017-02-04 07:39:05 【问题描述】:当我使用 python firefox webdriver 调用 firefox webbrowser 时,firefox 以空白页面打开(导航栏中没有任何内容),等待并关闭。
python 控制台给我这个错误:Traceback(最近一次调用最后一次):
File "firefox_selenium2.py", line 4, in <module> driver = webdriver.Firefox() File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/webdriver.py", line 80, in __init__ self.binary, timeout) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 52, in __init__ self.binary.launch_browser(self.profile, timeout=timeout) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 68, in launch_browser self._wait_until_connectable(timeout=timeout) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 108, in _wait_until_connectable % (self.profile.path)) selenium.common.exceptions.WebDriverException: Message: Can't load the profile. Profile Dir: /tmp/tmpngm7g76x If you specified a log_file in the FirefoxBinary constructor, check it for details.
我的代码是 python selenium read_the_doc 的例子:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()
任何帮助将不胜感激
PS:火狐49版 硒版本 2.53.6 蟒蛇3.5
【问题讨论】:
Selenium: FirefoxProfile exception Can't load the profile的可能重复 【参考方案1】:根据这篇文章 https://github.com/SeleniumHQ/selenium/issues/2739#issuecomment-249479530 就是您需要使用称为 Gecko 驱动程序的东西,在这里找到 https://github.com/mozilla/geckodriver。其他人也成功地回到了 Firefox 的先前版本(48 之前)。我也遇到了这个问题,实际上并不了解如何解决这两个问题,并且进展缓慢。
嗨,丹尼斯,现在我将发布我的分步解决方案。
逐步解决方案
问题在于 Selenium 和 Firefox 不再相互支持。我实际上不明白为什么,但希望有人可以比我更详细地发表评论和解释。有两种可能的解决方案。一种是安装称为 Geckodriver 的东西。我安装了它,但很难将它添加到我的 PATH 中,并且通常发现自己很沮丧。
相反我走了一条更简单的路线。 首先我用命令卸载了firefox
sudo apt-get purge firefox
然后我从这里下载了Firefox 47.0.1(我选择了英文美国版)。然后我将它从我的下载文件夹移动到我的主文件夹。然后我使用这个命令提取它。
tar xjf firefox-47.0.1.tar.bz2
您的 Firefox 号码可能与我的不同。然后我 cd 到那个目录
cd firefox
这把我带到了那个目录。然后剩下的就是运行命令
sudo apt install firefox
之后我又使用了 Selenium 的版本。很高兴我又开始编写代码而不是配置东西了!
【讨论】:
你下载并解压了 Firefox,然后忽略了它,只是通过包管理器安装了一个不同的版本。 顺便说一句,geckodriver 现在是在最新版本的 Firefox 中使用 selenium 的要求。 谢谢大家的精彩解释!以上是关于带有硒的 Firefox 空白网页浏览器的主要内容,如果未能解决你的问题,请参考以下文章