为了账号安全,请及时绑定邮箱和手机立即绑定

请问何时在Selenium Webdriver中使用显式等待vs隐式等待?

请问何时在Selenium Webdriver中使用显式等待vs隐式等待?

侃侃尔雅 2019-09-03 05:05:23
何时在Selenium Webdriver中使用显式等待vs隐式等待?我在用:driver.manage().timeouts().implicitlyWait(180, TimeUnit.SECONDS);但是对于下面的元素,它仍然会不断失败    driver.findElement(By.id("name")).clear();     driver.findElement(By.id("name")).sendKeys("Create_title_01");我添加了等待代码:for (int second = 0;; second++) {         if (second >= 120) fail("timeout");         try { if (isElementPresent(By.id("name"))) break; } catch (Exception e) {}         Thread.sleep(1000);     }不应该隐含等待,直到找到一个元素?如果我使用显式等待而不是我添加的代码,它会更好Thread.sleep()吗?
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

隐式等待 - 它是适用于所有元素的全局设置,如果元素在指定时间之前出现,则脚本将开始执行,否则脚本将抛出NoSuchElementException。在setup方法中使用的最佳方法。只影响By.findelement()

Thread.sleep()- 它将为脚本休眠时间,而不是在脚本中使用的好方法,因为它无条件地睡眠。如果5%的情况下2秒不够怎么办?

显式等待:等待指定包含/属性更改。当应用程序向系统提供AJAX调用并获取动态数据并在UI上呈现时,会使用更多。在这种情况下WebDriverWait是合适的。



查看完整回答
反对 回复 2019-09-09
  • 3 回答
  • 0 关注
  • 367 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信