繁体   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