Не работает проверка на существование элемента Selenium Python, как я могу это исправить?
У меня есть функция которая проверяет наличие элемента на странице
def demo_exist(browser):
try:
browser.switch_to.default_content()
game_cards = browser.find_elements(By.CLASS_NAME, "game-card__play-buttons")
#Выбираем одну карту
card = game_cards[1]
a = card.find_elements(By.CLASS_NAME, "btn.game-card__btn.game-card__demo-btn")
print("Количество элементов", len(a))
if(len(a)>0):
return True
else: return False
except Exception as e:
return False
Она служит триггером для выхода из цикла
while True:
choise_provider(browser)
if(demo_exist(browser)):
demo_button = get_demo_button(browser)
break
На моменте первого выполнения функции demo_exist, тест зависает на строчке
a = card.find_elements(By.CLASS_NAME, "btn.game-card__btn.game-card__demo-btn")
При остановке теста по CTR + C выдает следующую ошибку
Traceback (most recent call last):
File "D:\softmoi\python\Lib\http\client.py", line 1378, in getresponse
response.begin()
File "D:\softmoi\python\Lib\http\client.py", line 318, in begin
version, status, reason = self._read_status()
^^^^^^^^^^^^^^^^^^^
File "D:\softmoi\python\Lib\http\client.py", line 279, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\softmoi\python\Lib\socket.py", line 706, in readinto
return self._sock.recv_into(b)
^^^^^^^^^^^^^^^^^^^^^^^
ConnectionResetError: [WinError 10054] Удаленный хост принудительно разорвал существующее подключение
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "d:\User\Documents\automate testing\game_search_and_run\Provider.v2By_demobutton.py", line 86, in <module>
if(demo_exist(browser)):
^^^^^^^^^^^^^^^^^^^
File "d:\User\Documents\automate testing\game_search_and_run\Provider.v2By_demobutton.py", line 29, in demo_exist
a = card.find_elements(By.CLASS_NAME, "btn.game-card__btn.game-card__demo-btn")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Roaming\Python\Python311\site-packages\selenium\webdriver\remote\webelement.py", line 438, in find_elements
return self._execute(Command.FIND_CHILD_ELEMENTS, {"using": by, "value": value})["value"]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Roaming\Python\Python311\site-packages\selenium\webdriver\remote\webelement.py", line 394, in _execute
return self._parent.execute(command, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Roaming\Python\Python311\site-packages\selenium\webdriver\remote\webdriver.py", line 345, in execute
response = self.command_executor.execute(driver_command, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Roaming\Python\Python311\site-packages\selenium\webdriver\remote\remote_connection.py", line 300, in execute
return self._request(command_info[0], url, body=data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Roaming\Python\Python311\site-packages\selenium\webdriver\remote\remote_connection.py", line 321, in _request
response = self._conn.request(method, url, body=body, headers=headers)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Roaming\Python\Python311\site-packages\urllib3\_request_methods.py", line 118, in request
return self.request_encode_body(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Roaming\Python\Python311\site-packages\urllib3\_request_methods.py", line 217, in request_encode_body
return self.urlopen(method, url, **extra_kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Roaming\Python\Python311\site-packages\urllib3\poolmanager.py", line 443, in urlopen
response = conn.urlopen(method, u.request_uri, **kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Roaming\Python\Python311\site-packages\urllib3\connectionpool.py", line 790, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Roaming\Python\Python311\site-packages\urllib3\connectionpool.py", line 536, in _make_request
response = conn.getresponse()
^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Roaming\Python\Python311\site-packages\urllib3\connection.py", line 461, in getresponse
httplib_response = super().getresponse()
^^^^^^^^^^^^^^^^^^^^^
File "D:\softmoi\python\Lib\http\client.py", line 1380, in getresponse
self.close()
File "C:\Users\User\AppData\Roaming\Python\Python311\site-packages\urllib3\connection.py", line 270, in close
def close(self) -> None:
Надеюсь на вашу помощь, заранее извиняюсь если не правильно оформил пост.