Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当元素确实存在时,为什么硒没有引起接触元素异常_Python_Selenium - Fatal编程技术网

Python 当元素确实存在时,为什么硒没有引起接触元素异常

Python 当元素确实存在时,为什么硒没有引起接触元素异常,python,selenium,Python,Selenium,我有一个问题,当元素毫无疑问地存在时,selenium给了我NoTouchElementException 下面是一个未找到元素并超时的示例。我知道具有给定ID的元素存在,因为我可以在程序运行时在源代码中看到它,但由于某些原因,selenium找不到它。在这种情况下,它不会抛出错误,但与代码中其他地方抛出错误的问题相同 我尝试过使用xpath而不是id,以及在尝试查找之前使用隐式等待,但仍然不起作用 def waitforload(id): checktime = 0 while

我有一个问题,当元素毫无疑问地存在时,selenium给了我NoTouchElementException

下面是一个未找到元素并超时的示例。我知道具有给定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.iframe 2.即使元素具有ID(必须是唯一的),某些引擎也可以生成两个或多个具有相同ID的元素。请检查!
3.如果元素为输入,则可能元素具有隐藏克隆等。此外,请检查

页面上有iFrame吗?我该如何检查?在任何浏览器的控制台中运行document.getElementsByTagNameiframe。如果它返回任何元素,您就有iframe,那么您需要查看元素所在的元素。啊,谢谢。列表为空,因此没有iFrame。@webdriver.find_elements_by_tag_nameframe如何?