【问题标题】:Selenium can't open Firefox 48.0.1Selenium 无法打开 Firefox 48.0.1
【发布时间】:2016-09-06 02:15:25
【问题描述】:

我开始学习如何在 Django 中创建 Web 应用程序时成为一名更好的测试驱动开发人员。我正在尝试使用 Selenium 打开浏览器,但出现错误。

selenium.common.exceptions.WebDriverException: Message: Can't load the profile. Profile Dir: /var/folders/xn/bvyw0fm97j1_flsyggj0xn9r0000gp/T/tmptoxt890d If you specified a log_file in the FirefoxBinary constructor, check it for details.

我通过“安装 FF 扩展程序”禁用附加兼容性检查“跳过了这一点,一切都很好。” selenium.common.exceptions.WebDriverException: Message: Can't load the profile。我这样做了,但它仍然无法正常工作。我将 Python2.7 和 Python3.5 与 Selenium 版本 2.53.6 一起使用。

Python 文件

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import unittest

caps = DesiredCapabilities.FIREFOX
caps["marionette"] = True

class NewVisitorTest(unittest.TestCase):  

    def setUp(self):  
        self.browser = webdriver.Firefox(capabilities=caps)

    def tearDown(self):  
        self.browser.quit()

    def test_can_start_a_list_and_retrieve_it_later(self):  
        self.browser.get('http://localhost:8000')

        self.assertIn('To-Do', self.browser.title)  

if __name__ == '__main__':  
    unittest.main(warnings='ignore') 

堆栈跟踪

Creating test database for alias 'default'...
EException ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x103f652b0>>
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 151, in __del__
    self.stop()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 123, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'

======================================================================
ERROR: test_can_start_a_list_and_retrieve_it_later (functional_tests.NewVisitorTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/timothybaney/Treehouse/TDD/superlists/functional_tests.py", line 13, in setUp
    self.browser = webdriver.Firefox(capabilities=caps)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/firefox/webdriver.py", line 82, in __init__
    self.service.start()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 62, in start
    stdout=self.log_file, stderr=self.log_file)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/subprocess.py", line 1551, in _execute_child
    raise child_exception_type(errno_num, err_msg)
NotADirectoryError: [Errno 20] Not a directory

----------------------------------------------------------------------
Ran 1 test in 0.012s

FAILED (errors=1)
Destroying test database for alias 'default'...

【问题讨论】:

    标签: python selenium firefox


    【解决方案1】:

    该错误是因为您使用的是 FF 48。对于 FF>=47 FirefoxDriver 停止工作。您必须使用新的MarionetteDriver

    设置这个:

    from selenium import webdriver
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    
    caps = DesiredCapabilities.FIREFOX
    caps["marionette"] = True
    
    browser = webdriver.Firefox(capabilities=caps)
    browser.get('http://localhost:8000')
    
    assert 'Django' in browser.title
    

    【讨论】:

    • 太棒了,它奏效了。谢谢亚克丹尼尔·赫塔多!现在我可以继续学习了。
    • 我有这个工作,我不确定昨晚发生了什么,但现在我遇到了这个问题。 NotADirectoryError: [Errno 20] 不是目录。我是否必须将我计算机上的 Firefox 可执行文件的路径与功能一起传递给 Firefox?
    • 是的,你可以,添加它:caps["binary"] = "/usr/bin/firefox" 但它看起来像其他类型的问题,你改变你的代码还是什么?
    • 不是很多,只是将单元测试放入 TestCase 类。我用新代码更新了我的帖子。
    • 以及堆栈跟踪
    猜你喜欢
    • 2014-10-28
    • 2017-05-24
    • 2017-08-02
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多