簡體   English   中英

如何使用 Python 和 Selenium 單擊此元素?

[英]How to click this element using Python and Selenium?

我有以下 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 是動態的。

我試過這樣

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

感謝任何幫助

使用下面的 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()

注意:如果您也收到上述 xpath 的timeout exceptions ,請檢查網頁上是否存在iframe

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM