当element肯定存在时,为什么selenium会给出NoSuchElementException

时间:2014-11-19 13:24:21

标签: python selenium

我遇到问题的是,当元素毫无疑问存在时,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

1 个答案:

答案 0 :(得分:0)

已知问题:

1.iframe
2.即使元素具有ID,必须是UNIQUE,一些引擎也可以生成两个或多个具有相同ID的元素。检查一下!
3.如果是输入等,也可以隐藏克隆。另外,检查一下!