Как узнать, что WebDriverWait является успешным? - PullRequest
0 голосов
/ 04 июля 2019

У меня есть код ожидания для одного из необходимых мне предметов:

WebDriverWait(driver, 5).until(lambda driver: driver.find_elements(
            By.XPATH, 'XPATH') or driver.find_elements(
                By.XPATH, 'XPATH') or driver.find_elements(
                    By.XPATH, 'XPATH'))

Можно ли как-нибудь узнать, какой элемент я ждал? Я знаю, что могу проверить наличие этих элементов следующим образом:

if driver.find_elements(By.XPATH, 'XPATH') > 0:
    True
elif driver.find_elements(By.XPATH, 'XPATH') > 0:
    True

Но это не так красиво, как я хочу. Я заинтересован в возможности идентификации внутри функции до. Если у вас есть другие идеи, я бы с удовольствием их выслушал.

1 Ответ

1 голос
/ 04 июля 2019

В Python оператор and работает особым образом.
Попробуйте это:

WebDriverWait(driver, 5).until(lambda driver: (driver.find_elements(
            By.XPATH, 'XPATH1') and 1) or (driver.find_elements(
                By.XPATH, 'XPATH2') and 2) or (driver.find_elements(
                    By.XPATH, 'XPATH3') and 3))

Возвращает 1, 2 или 3 в зависимости от найденного XPATH. Вы также можете заменить эти числа на любое String / выражение. Единственное условие - это должно быть выражение, которое может передавать if (expression) в python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...