Firefox空白webbrowser与selenium

时间:2016-09-26 20:17:25

标签: python python-3.x selenium firefox

当我使用python firefox webdriver调用firefox webbrowser时,firefox打开一个空白页面(导航栏中没有任何内容),等待并关闭。

  

python consol给我这个错误: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:firefox版本49 硒版本2.53.6 python 3.5

1 个答案:

答案 0 :(得分:2)

根据这篇文章 https://github.com/SeleniumHQ/selenium/issues/2739#issuecomment-249479530 这就是你需要使用Gecko Driver这里的东西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 firefox    

将我带入该目录。然后剩下的就是运行命令

sudo apt install firefox 

之后我再次使用了Selenium的版本。我很高兴回到编写代码而不是配置东西!