隐藏在selenium WebDriver中

时间:2017-07-02 06:47:29

标签: selenium-webdriver

我隐含地等待以下------> 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秒?

抱歉,为了清楚起见,我改变了我的问题。

2 个答案:

答案 0 :(得分:1)

隐含等待"告诉" findElement()方法查找元素到指定的时间或者直到元素存在于DOM中(不一定显示)。每次搜索都会发生这种情况,搜索之间没有任何依赖关系。

答案 1 :(得分:0)

现在implicitly_wait( )(Python)或implicitlyWait()(Java)方法告诉脚本,更确切地说,它告诉Webdriver在一段时间内轮询DOM,持续30或60秒或者您指定的任何时间,当试图找到一个或多个元素时,如果它们不是立即可用的。通过民意调查,我们的意思是一次又一次地检查DOM。

一旦定义,将为Webdriver对象实例的整个生命周期定义隐式等待,直到它被更改为止。因此,一旦在脚本中定义,它将在脚本的生命周期内处于活动状态,直到被修改。对于element1element2element3,它会等待相同的金额,即60秒。如果在规定的时间内找到该元素,则执行下一个命令。但是,如果不是时间,WebDriver会引发TimeoutException例外。