Как нажать на этот элемент, используя Python и Selenium? - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть следующий HTML, который я должен нажать

<button aria-label="Nur Ergebnisse für Inhalte anzeigen" id="ember912" class="search-vertical-filter__filter-item-button artdeco-button artdeco-button--muted artdeco-button--2 artdeco-button--tertiary ember-view" type="button">
<!---->
<span class="artdeco-button__text">
    Inhalte
</span>
</button>

id is dynamici c.

Я пытался вот так

WebDriverWait(driver, delay).until(
                EC.presence_of_element_located((By.XPATH, "//button[@aria-label='Nur Ergebnisse für Inhalte anzeigen']/button[@class='search-vertical-filter__filter-item-button artdeco-button artdeco-button--muted artdeco-button--2 artdeco-button--tertiary ember-view' and text()='Nur Ergebnisse für Inhalte anzeigen']"))).click()

и вот так

WebDriverWait(driver, delay).until(
                EC.presence_of_element_located((By.XPATH, '//span[contains(text(), "Inhalte")'))).click()

и вот так

WebDriverWait(driver, delay).until(
                EC.presence_of_element_located((By.XPATH, '//span[contains(text(), "Inhalte") and @class="artdeco-button__text"]'))).click()

но это не работает, я всегда получаю TimeoutException

Ценю любую помощь

1 Ответ

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

Используйте следующий xpath, чтобы щелкнуть по элементу.

WebDriverWait(driver, delay).until(EC.element_to_be_clickable((By.XPATH, "//button[@aria-label='Nur Ergebnisse fÞr Inhalte anzeigen' and contains(.,'Inhalte')]"))).click()

ИЛИ

WebDriverWait(driver, delay).until(EC.element_to_be_clickable((By.XPATH, "//button[contains(@aria-label , 'Nur Ergebnisse') and contains(.,'Inhalte')]"))).click()

Примечание. Если вы также получили timeout exceptions сверху xpath, проверьте, если на веб-странице присутствует iframe.

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