我试图点击ul下拉列表中的li元素。我想选择"上个月",但得到这个错误:消息:没有此元素:找不到元素
下面是我的代码:
def click_on(xpath):
timeout = time.time() + 30
while True:
try:
driver.find_element(By.XPATH, xpath).click()
break
except Exception:
if time.time() > timeout:
msgbox('Process timed out after 30 seconds.', 'Error')
exit()
click_on('//*[@id="popover_otrppv916b"]/div/div[2]/div[1]/div/div/div/div/ul/li[9]/div/span')
下面是html:
我还尝试只单击<div>
标记,只单击<li>
标记(而不是<span>
标记),但得到了相同的错误。
1条答案
按热度按时间sgtfey8w1#
popover_otrppv916b
*)是动态生成的,迟早会更改。它们可能会在下次重新访问应用程序时更改,甚至在下次启动应用程序时更改。因此不能在定位器中使用。溶液
要单击文本为***Last month***的***clickable***元素,需要为element_to_be_clickable()引入WebDriverWait,可以使用以下locator strategies之一:
normalizespace()
*:contains()
*: