我正在使用Selenium Webdriver在firefox / win10中定位元素。
该网页如下。
html源文档中有一个iframe标记,可以使用以下两个xpath访问其元素。
"//iframe[@src='https://www.googletagmanager.com/ns.html?id=GTM-TKSM5PF']"
'//html/body/noscript[1]/iframe[1]'
然后,我使用以下python语句为上述每个xpath定位一次元素。
e = WebDriverWait(driver, 1).until(EC.visibility_of_element_located((By.XPATH, xPath)))
这种情况是,当可以找到标签时,webdriver将迅速返回该元素。但是对于上述元素,Webdriver无法找到它,大约需要5分钟才能返回。
如您所见,该位置的等待时间设置为1秒。但实际上,这大约需要5分钟。
如果有人可以告诉我如何在定位元素失败时使webdriver快速返回,我将非常感激。
谢谢!
了解
答案 0 :(得分:0)
很抱歉这个愚蠢的问题。正如Guy所建议的,这是因为webdriverwait.until语句干扰了在其他位置声明的hidden_wait()语句。更改了implicitly_wait语句后,问题消失了。