Selenium的延迟等待

来源:互联网 发布:a2淘宝旗舰店是真的吗 编辑:程序博客网 时间:2024/05/16 14:34

Selenium的延迟等待分为 显式等待(Explicit Wait) & 隐式等待(Implicit Wait).

1.显式等待

显式等待,就是明确的要等到某个元素的出现或者是某个元素的可点击等条件,等不到,就一直等,除非在规定的时间之内都没找到,那么就跳出Exception.

如:

1new WebDriverWait(driver, 15 ).until(
2     ExpectedConditions.presenceOfElementLocated(By.cssSelector("css locator"))
3);

这里,15是要等待的秒数.如果没有满足until()方法中的条件,就会始终在这里wait 15秒,依然找不到,就抛出异常.

也可以这样写:

01WebDriver driver = new FirefoxDriver();
02driver.get( www.baidu.com );
03WebElement e = ( new WebDriverWait( driver, 10 )) .until(
04     newExpectedCondition< WebElement>(){
05         @Override
06         publicWebElement apply( WebDriver d) {
07             return d.findElement( By.id("id locator"));
08         }
09     }
10);

这样就通过回调函数,直接获得了这个WebElement.也就是页面元素.

如果只是仅仅想判断页面是不是加载到某个地方了,就可以用第一种方法; 但如果需要得到某个WebElement,两种方式都可以,只是第一种方式还需要再多一步获取的操作.

1Wait w = newWait(){
2     @Override
3     publicbooleanuntil() {
4         returnwebElement.isDisplayed();
5     }
6};

另外这种等待的方式,在加载js代码的时候做判断会比较方便,反正我只在代码里这么见过,但是没用过,有兴趣的朋友可以研究一下.

2.隐式等待

1driver.manage().timeouts().implicitlyWait(second, TimeUnit.SECONDS);

隐式等待, 此处的隐式等待是针对Driver 每次执行命令的 最长执行时间也可以理解为超时时间,  一些人对此处有误解,认为是让Driver等一段时间,  确实某些时候能让Driver等一段时间, 但是影响是全局的,每次Driver执行 找不到元素都会等待此处设置的时间,  假设某处将此值设置的太长,必须在执行完成之后还原回来,否则判断一个元素是否存在的时候,就会遇到很坑爹的问题。   改进后的方法如下:

WebDriver会进行一个隐式等待,但参数只有时间,这就导致我需要什么元素出现,我不一定能等到它,

  private boolean isElementPresent(By by) {
    try {
      driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
      driver.findElement(by);
      return true;
    } catch (NoSuchElementException e) {
      return false;
    }
  }

得不到某个元素,我们就延迟一下...

3.线程休眠

1Thread.sleep()
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 腰椎间盘突出的原因 腰椎间盘突出吃什么好 腰椎间盘突出严重吗 腰椎间盘突出的疗法 腰椎间盘突出与膨出 腰椎间盘膨出的原因 腰椎间盘突出初期症状 腰椎间盘突出症的锻炼 腰椎间盘突出的锻炼 腰椎间盘突出的护理 腰椎间盘突出按摩手法 腰椎间盘突出和脱出 腰椎间盘突出如何保养 腰椎间盘突出的保养 腰椎间盘突出有何症状 腰椎间盘突出医院好 得了腰椎间盘突出怎么办 腰椎间盘突出的锻炼方法 腰椎间盘为什么会突出 腰椎间盘突出要注意哪些 腰椎间盘突出吃中药 腰椎间盘突出的腰带 腰椎间盘突出按摩器 腰椎间盘突出新疗法 腰椎间盘突出费用多少 腰椎间盘突出微创多少钱 腰椎间盘突出哪里医院好 腰椎间盘突出怎样按摩 腰椎间盘突出哪个医院好 腰椎间盘突出适合什么运动 腰椎间盘突出能自愈吗 腰椎间盘突出能复位吗 腰椎间盘突出手法复位 腰椎间盘突出能做瑜伽吗 霍华德腰椎间盘突出 腰椎间盘突出拍片能看出来吗 腰椎间盘突出去那家医院好 腰椎间盘突出能用按摩器吗 腰椎间盘突出专业医院 腰椎间盘突出应该看什么科 腰椎间盘突出要住院吗