Не могу заставить selenium работать я хочу протестировать мое приложение django channels

я пытаюсь протестировать свое приложение и даже если я делаю самые простые вещи мой selenium отказывается работать все что я получаю это длинное сообщение об ошибке и я не могу понять почему, я новичок в selenium и я не могу понять эти ошибки, буду рад помощи, я работаю на статическом сервере в django

неизвестно, важно ли это

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

tests.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:\Users\David\Desktop\VSProjects\LiveChat\livechatapp> 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:\Python310\lib\multiprocessing\spawn.py", line 107, in spawn_main
    new_handle = reduction.duplicate(pipe_handle,
  File "C:\Python310\lib\multiprocessing\reduction.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:\Users\David\Desktop\VSProjects\LiveChat\livechat_env\lib\site-packages\django\test\testcases.py", line 287, in _setup_and_call
    self._pre_setup()
  File "C:\Users\David\Desktop\VSProjects\LiveChat\livechat_env\lib\site-packages\channels\testing\live.py", line 52, in _pre_setup
    self._server_process.start()
  File "C:\Python310\lib\multiprocessing\process.py", line 121, in start
    self._popen = self._Popen(self)
  File "C:\Python310\lib\multiprocessing\context.py", line 224, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
  File "C:\Python310\lib\multiprocessing\context.py", line 327, in _Popen
    return Popen(process_obj)
  File "C:\Python310\lib\multiprocessing\popen_spawn_win32.py", line 93, in __init__
    reduction.dump(process_obj, to_child)
  File "C:\Python310\lib\multiprocessing\reduction.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")

Надеюсь, это сработает

Вернуться на верх