使用selenium使用Firefox启动网页

时间:2017-06-05 17:13:19

标签: python selenium firefox

我目前正在阅读使用Python自动化无聊的东西并尝试学习如何使用Selenium。目前,我只是想打开一个网页,甚至无法让它工作。我知道有更简单的方法可以使用python启动网页,但我的目标是稍后使用网页内容,这就是我使用selenium的原因。

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.python.org")

当我运行此代码时,它确实成功启动了Firefox但它没有打开我指定的网页。此错误也会被返回。

Traceback (most recent call last):
  File "/Users/lbor/Desktop/se.py", line 2, in <module>
    driver = webdriver.Firefox()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 80, in __init__
    self.binary, timeout)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/firefox/extension_connection.py", line 52, in __init__
    self.binary.launch_browser(self.profile, timeout=timeout)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 68, in launch_browser
    self._wait_until_connectable(timeout=timeout)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-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: /var/folders/4c/gsw7v5b118j406zxj3lxctt40000gn/T/tmp_dgwff4s If you specified a log_file in the FirefoxBinary constructor, check it for details.

我不明白这个问题是什么或如何修复它。我正在运行OS 10.12.5,Python 3.6,Selenium 2.53.6,Firefox 53.0.3。至于geckodriver,我不知道它是什么或如何安装它。

2 个答案:

答案 0 :(得分:1)

您可以从here下载geckodriver。

之后,您需要使用以下方式加载它:

geckodriver = os.path.dirname(os.path.realpath(__file__)) + "/geckodriver"

drv = webdriver.Firefox(geckodriver)

答案 1 :(得分:0)

您可以在此处安装geckodriver,方法是为您的计算机选择合适的版本:

https://github.com/mozilla/geckodriver/releases

然后,在您的代码中,您将计算机上geckodriver位置的完整路径传递给Firefox方法:

browser = webdriver.Firefox(executable_path="/Users/username/Location/geckodriver")

browser.get("https://google.com") #this will load the the google homepage. 
#you can specify any page you want here.