Не удается найти элемент, используя xpath (Python и селен) - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь сделать некоторые автоматизации, используя Python + селен (новичок в этом). К сожалению, проверка элементов определенной веб-страницы c более чем сложна. Там нет идентификатора для использования, и я пытаюсь xpath. Я хочу выбрать выпадающий список, я проверяю этот элемент и копирую xpath, который // * [@ id = "frmMain: критерии: purchase_criteria_tab"] / div [13] / div [1] / div / button

мой код:

    NEXT_BUTTON_XPATH = "//*[@id='frmMain:criteria:purchase_criteria_tab']/div[13]/div[1]/div/button"
wait = WebDriverWait(driver, 10)
condition = expected_conditions.presence_of_element_located(
    (By.XPATH, NEXT_BUTTON_XPATH))
button = wait.until(condition)
button.click()

и я не могу получить элемент Любые идеи? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

попробуйте

from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait 
try:
    # for click element element_to_be_clickable condition used
    button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable(By.XPATH, "elemnt_xpath"))) 
    button.click()

except Exception as e:
    print(e)
0 голосов
/ 17 февраля 2020

Вы можете нажать на элемент, используя синтаксис:

WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//*[@id='frmMain:criteria:purchase_criteria_tab']/div[13]/div[1]/div/button"))).click()

Примечание. Необходимо добавить следующие операции импорта:

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