带有硒的 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 空白网页浏览器的主要内容,如果未能解决你的问题,请参考以下文章

启动带有用户配置信息的FireFox浏览器

firefox因网页太长而下部分无法显示、黑屏。

360浏览器打开新网页后显示空白是怎么回事?

chrome总是空白页,打开网页总是显示无标题,如下图,急,在线等

firefox打开网页隐藏元素

将网页保存为仅HTML,但是打开后一片空白