@Esserj

Почему при запуске программы через run получаю список, отличный, от полученного при запуске через дебагер?

Мне нужно проверить фильтрацию таблицы на сайте.
Для этого я нахожу элемент таблицы, в котором нахожу дочерний список элементов строк этой таблицы.
После, циклом, я прохожу по тексту этих строк и ищу вхождение нужного мне значения в эту строку.

Проблема в том, что при запуске программы через run, я получаю одну из нескольких строк, обрезанную посередине.
Соответственно тест падает, так как не находит там нужное значение.

При запуске программы через дебагер, я получаю все целые строки.

Как разрешить эту ситуацию?

Код:
wait.until(EC.element_to_be_clickable((
            By.CSS_SELECTOR,
            '[class="ant-table-tbody"]'
        )))
        check_filtration_in_filtered_list(browser, 'Тест')


Метод:
def check_filtration_in_filtered_list(browser, value):
    table_with_all_algorithms = browser.find_element(
        By.CSS_SELECTOR,
        '[class="ant-table-tbody"]'
    )
    
    rows = table_with_all_algorithms.find_elements(
        By.CSS_SELECTOR,
        '[class="ant-table-row ant-table-row-level-0"]'
    )

    for row in rows:
        print([row.text])
        if search(value, row.text) is None:
            return False
    return True
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 1
fenrir1121
@fenrir1121
Начни с документации
Единственный кейс, который приходит на ум, когда не проверяется что все данные уже загрузились.

Соответственно при дебаге с пошаговой отладкой пока по шагам идешь все успеет подгрузиться, а при реальном запуске части данных еще нет.

Возможно поможет WebDriver.set_page_load_timeout
Другой вариант проверять видимость или кликабельность нужных элементов через expected_conditions
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы