ошибка сервера 500 при ожидании после нажатия - PullRequest
0 голосов
/ 28 октября 2018

Я тестирую с Selenium функцию для моего проекта Django.

У меня есть кнопка, которую нужно нажать, которая после некоторой обработки перенаправляет на другую страницу.

Я использую дляпроверить это:

@classmethod
def wait_until(cls, findhow, findwhere):
    WebDriverWait(cls.selenium, 10).until(EC.presence_of_element_located((findhow,findwhere)))

Итак, я (Selenium) нажимаю на кнопку, которая перенаправляет на страницу, и на этой странице есть text_table.Эта таблица является элементом, который я проверяю для обнаружения перенаправления.

self.wait_until(By.ID, 'text_table')

, но я сразу же получил (безо всякой паузы) 500 server error с трассировкой:

Traceback (most recent call last):
  File "/mnt/backup/BACKUP_Aubrey/workspace/LingL/functional_tests/selenium_text_detail.py", line 56, in test_create_a_new_text
    self.wait_until(By.ID, 'text_table')
  File "/mnt/backup/BACKUP_Aubrey/workspace/LingL/functional_tests/selenium_base.py", line 53, in wait_until
    EC.presence_of_element_located((findhow,findwhere))
  File "/home/campagne/backup_ln/.Envs/LingL/lib/python3.7/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 

(часть сообщения пуста)

Есть идеи?Браузер, кажется, не учитывает время ожидания (10, 20 или 30 секунд ...) и перенаправляет сразу.Я предполагаю, что ошибка 505 связана с тем, что, поскольку перенаправление является немедленным, без разрешения обработки, которую я закодировал после события click (он обрабатывает некоторое значение, отправленное GET)

1 Ответ

0 голосов
/ 28 октября 2018

В соответствии с вашим вопросом, когда вы пытаетесь вызвать click(), вместо использования ожидаемых условий в качестве presence_of_element_located() вам нужно использовать element_to_be_clickable() следующим образом:

@classmethod
def wait_until(cls, findhow, findwhere):
    WebDriverWait(cls.selenium, 10).until(EC.element_to_be_clickable((findhow,findwhere)))

Продвигаясь вперед, вы можете вызвать click() метод как:

self.wait_until(By.ID, 'text_table')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...