我在Django应用聊天中使用selenium的tests.py
from channels.testing import ChannelsLiveServerTestCase
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.firefox.options import Options
class ChatTests(ChannelsLiveServerTestCase):
serve_static = True # emulate StaticLiveServerTestCase
@classmethod
def setUpClass(cls):
super().setUpClass()
try:
# NOTE: Requires "chromedriver" binary to be installed in $PATH
options = Options()
options.set_headless(headless=True)
cls.driver = webdriver.Firefox(firefox_options=options)
except:
super().tearDownClass()
raise
....
我像这样运行测试并找回了这个错误
(chatenv) muiruri_samuel@train:~/webapp/chatsys$ python manage.py test chat.tests
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
E
======================================================================
ERROR: setUpClass (chat.tests.ChatTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/muiruri_samuel/webapp/chatsys/chat/tests.py", line 19, in setUpClass
cls.driver = webdriver.Firefox(firefox_options=opts)
File "/home/muiruri_samuel/webapp/chatenv/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py"
, line 170, in __init__
keep_alive=True)
File "/home/muiruri_samuel/webapp/chatenv/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py",
line 156, in __init__
self.start_session(capabilities, browser_profile)
File "/home/muiruri_samuel/webapp/chatenv/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py",
line 245, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/home/muiruri_samuel/webapp/chatenv/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 314, in execute
self.error_handler.check_response(response)
File "/home/muiruri_samuel/webapp/chatenv/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: connection refused
----------------------------------------------------------------------
Ran 0 tests in 61.180s
FAILED (errors=1)
Destroying test database for alias 'default'...
根据我检查过的可能原因是firefox无法在ubuntu上运行vm,因为它在服务器上并且它主要用于测试代码工作(与套接字连接)。
使用推荐的新方法设置无头但它也失败并返回相同的错误。