不能让硒工作,我想测试我的django频道应用程序



我试图测试我的应用程序,即使我做了最基本的事情,我的selenium也拒绝工作,我得到的只是一条长错误消息,我不明白为什么我是selenium的新手,我不理解这些错误,我希望得到一些帮助,我在django的静态服务器上工作,我希望能得到一些帮助。

idk如果它的重要

CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels.layers.InMemoryChannelLayer"
}
}

测试.py

import time
from channels.testing import ChannelsLiveServerTestCase
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
class ChatTests(ChannelsLiveServerTestCase):

@classmethod
def setUpClass(cls):
try:
super().setUpClass()
cls.driver = webdriver.Chrome('C:\Users\David\Desktop\VSProjects\LiveChat\chromedriver.exe')
cls.driver.implicitly_wait(10)
except:
cls.tearDownClass()

@classmethod
def tearDownClass(cls):
cls.driver.quit()
super().tearDownClass()


def test_admin_login(self):  
self.driver.get(self.live_server_url)
time.sleep(20)

错误代码

(livechat_env) PS C:UsersDavidDesktopVSProjectsLiveChatlivechatapp> py manage.py test --keepdb
Found 1 test(s).
Using existing test database for alias 'default'...
System check identified no issues (0 silenced).
DevTools listening on ws://127.0.0.1:53585/devtools/browser/326e028a-0c32-4557-93a4-6c55304bae1d
ETraceback (most recent call last):
File "<string>", line 1, in <module>
File "C:Python310libmultiprocessingspawn.py", line 107, in spawn_main
new_handle = reduction.duplicate(pipe_handle,
File "C:Python310libmultiprocessingreduction.py", line 79, in duplicate
return _winapi.DuplicateHandle(
OSError: [WinError 6] The handle is invalid
======================================================================
ERROR: test_admin_login (room.tests.ChatTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:UsersDavidDesktopVSProjectsLiveChatlivechat_envlibsite-packagesdjangotesttestcases.py", line 287, in _setup_and_call
self._pre_setup()
File "C:UsersDavidDesktopVSProjectsLiveChatlivechat_envlibsite-packageschannelstestinglive.py", line 52, in _pre_setup
self._server_process.start()
File "C:Python310libmultiprocessingprocess.py", line 121, in start
self._popen = self._Popen(self)
File "C:Python310libmultiprocessingcontext.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "C:Python310libmultiprocessingcontext.py", line 327, in _Popen
return Popen(process_obj)
File "C:Python310libmultiprocessingpopen_spawn_win32.py", line 93, in __init__
reduction.dump(process_obj, to_child)
File "C:Python310libmultiprocessingreduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
AttributeError: Can't pickle local object 'convert_exception_to_response.<locals>.inner'
----------------------------------------------------------------------
Ran 0 tests in 3.580s
FAILED (errors=1)
Preserving test database for alias 'default'...

如果这可行,我不是100%,但我认为你可以打开我们本地托管网站的url(如"localhost:8000&"(:

from selenium import webdriver
PATH = "path to your webdriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("localhost:8000")

希望这能起到的作用

最新更新