Python Selenium - Попытка записи условия ожидания, когда текст изменяется в элементе таблицы. - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь написать сценарий селена для поиска терминов на веб-странице, а затем выбрать их из таблицы.

Таблица является динамической c и изменяется, когда элементы вводятся в поле поиска. Обычно, когда я писал код селена в прошлом, я просто использовал оператор ожидания, чтобы дождаться загрузки какого-либо элемента на странице, прежде чем продолжить. При этом мне нужно подождать, пока искомый элемент появится в таблице, а затем выбрать его.

Вот то, что я сейчас написал, где tableElement - это таблица, которую я пытаюсь найти, а userID - это ввод, который я надеюсь найти:

tableElement = self.driver.find_element_by_xpath(
                'X-PATH_TO_ELEMENT')

ui.WebDriverWait(self.driver, 15).until(
                EC.text_to_be_present_in_element(
                    tableElement, userID)
            )

При запуске этого кода, Я получаю следующее сообщение об ошибке:

find_element() argument after * must be an iterable, not WebElement

Насколько мне известно, это должен быть правильный синтаксис метода, который я пытаюсь вызвать. Любая помощь будет оценена! Пожалуйста, дайте мне знать, если мне нужно уточнить какие-либо детали.

1 Ответ

1 голос
/ 10 апреля 2020

Expcted condition в основном используются с find_element и find_elements.

В вашем коде вы указали веб-элемент для E C вместо локатора.

, который вы можете использовать код ниже, чтобы использовать E C в вашем коде:

WebDriverWait(driver, 30).until(
             EC.visibility_of_all_elements_located((By.XPATH, "xpath of your element")))

Примечание: вы должны добавить импорт ниже в ваше решение:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
...