我遇到问题的是,当元素毫无疑问存在时,selenium会给我NoSuchElementException。
下面是一个没有找到元素并超时的例子。我知道具有给定ID的元素存在,因为我可以在程序运行时在源代码中看到它,但由于某种原因,selenium无法找到它。在这种情况下,它不会抛出错误,但它与导致错误的代码中的其他地方存在相同的问题。
我尝试使用xpath而不是id以及在尝试查找之前使用隐式等待,但它仍然无法正常工作。
def waitforload(id):
checktime = 0
while True:
try:
x = webdriver.find_element_by_id(id)
return True
except:
time.sleep(0.5)
checktime += 0.5
print(checktime)
if checktime > TIMEOUT:
return False
答案 0 :(得分:0)
已知问题:
1.iframe
2.即使元素具有ID,必须是UNIQUE,一些引擎也可以生成两个或多个具有相同ID的元素。检查一下!
3.如果是输入等,也可以隐藏克隆。另外,检查一下!