在python3中使用硒无法在页面中找到元素

时间:2019-09-14 15:14:26

标签: python python-3.x selenium webdriver selenium-chromedriver

我试图找到一个元素from this,它是一个按钮,但是我找不到该元素。我尝试通过class_namexpathid进行查找,但似乎都没有结果 selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element:

<button class="dates_head commo_btn">
<!-- react-text: 175 -->
09
<!-- /react-text -->
<!-- react-text: 176 -->
<!-- /react-text -->
<!-- react-text: 177 -->
MON
<!-- /react-text -->
</button>

xpath值应该是唯一的,但仍然找不到元素

我在Fedora 29上使用Python 3.7.2,Selenium 3.141.0,chromedriver 2.40 任何有关如何解决此问题的帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

要单击react元素,您需要诱导 WebDriverWait element_to_be_clickable()

使用以下xpath定位器策略。

WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//button[@class='dates_head commo_btn'][contains(.,'09')][contains(.,'MON')]"))).click()

您需要导入以下内容。

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

请注意,如果您仍然得到timeout error,请检查是否有iframe可用。