2016-09-05 56 views
3

我開始學習如何在Django中創建Web應用程序時成爲更好的測試驅動開發人員。我正在嘗試使用Selenium來打開瀏覽器,但是我收到了錯誤消息。Selenium無法打開Firefox 48.0.1

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。我做到了這一點,但它仍然無法正常工作。我在Selenium版本2.53.6中使用了Python2.7和Python3.5。

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'... 

回答

3

該錯誤是因爲你使用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 
+0

真棒,它的工作。謝謝Yacdaniel Hurtado!現在我可以繼續學習。 – JBT

+0

我有這個工作,我不知道晚上發生了什麼,但現在我得到這個問題。 NotADirectoryError:[Errno 20]不是目錄。我是否必須將我的計算機上的Firefox可執行文件的路徑傳遞給Firefox以及功能? – JBT

+0

是的,你可以添加它:'caps [「binary」] =「/ usr/bin/firefox」 但它看起來像其他類型的問題,你改變了你的代碼或什麼? –

相關問題