我隐含地等待以下------>
d.manage().timeouts().implicitlyWait(60,TimeUnit.SECONDS);
//我写了3个定位符
d.findElement(By.id("element1")).click(); //assume it take to load 20 seconds
d.findElement(By.id("element2")).sendKeys(""); //assume it take to load 10 seconds
d.findElement(By.id("element3")).click();
//现在我的问题是webdriver等待第3个元素3多少时间? ,是60-20 + 10 = 30秒还是全时60秒?
抱歉,为了清楚起见,我改变了我的问题。
答案 0 :(得分:1)
隐含等待"告诉" findElement()
方法查找元素到指定的时间或者直到元素存在于DOM中(不一定显示)。每次搜索都会发生这种情况,搜索之间没有任何依赖关系。
答案 1 :(得分:0)
现在implicitly_wait( )
(Python)或implicitlyWait()
(Java)方法告诉脚本,更确切地说,它告诉Webdriver在一段时间内轮询DOM,持续30或60秒或者您指定的任何时间,当试图找到一个或多个元素时,如果它们不是立即可用的。通过民意调查,我们的意思是一次又一次地检查DOM。
一旦定义,将为Webdriver对象实例的整个生命周期定义隐式等待,直到它被更改为止。因此,一旦在脚本中定义,它将在脚本的生命周期内处于活动状态,直到被修改。对于element1
,element2
或element3
,它会等待相同的金额,即60秒。如果在规定的时间内找到该元素,则执行下一个命令。但是,如果不是时间,WebDriver会引发TimeoutException
例外。