WebDriverWait +搜索项目

时间:2014-05-01 22:50:14

标签: java selenium selenium-webdriver

创建激活码后,需要1-60秒才能将代码上传到系统中。所以在创建新代码之后,我想使用WebDriverWait 60秒来确保在这个时间段内每3秒我想点击搜索按钮。有没有办法做到这一点?

(new WebDriverWait(driver, 60))
.until(ExpectedConditions.textToBePresentInElement(By.xpath("//*[@id='searchResults']"), activationCode));

4 个答案:

答案 0 :(得分:1)

您可以为此目的使用for循环。如果满足条件(代码生成),则在循环中等待3秒钟并退出循环。

通过这样做,如果代码在10秒内生成,则无需等待60秒。你会在等待12秒后出来。

答案 1 :(得分:0)

这是免费的#34;与WebDriverWait

创建WebDriverWait时可以设置一个值,告诉它应该多久尝试运行一下代码(点击搜索按钮):

http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/support/ui/FluentWait.html#pollingEvery(long,java.util.concurrent.TimeUnit)

所以只需将pollingEvery设置为等于三秒

答案 2 :(得分:0)

循环方法对我来说很好,感谢您的建议h4k3r。

while(dynamicSearch(activationCode,"//*[@id='searchResults']") && key<20)
{
  driver.findElement(By.xpath(".//*[@id='searchItem']")).click();
  key++;
}

这是方法部分。

  

public static boolean dynamicSearch(String activationCode,String   xpathAdress)

     

{try

{ (new WebDriverWait(driver, 3))
     

。直到(ExpectedConditions.textToBePresentInElement(By.xpath(xpathAdress),   激活码));

     

返回false;       }

     捕获(例外e)
  {         返回true;                 }

答案 3 :(得分:0)

还有一个建议:)

  

在XPATH上使用CSS Selector,因为CSS Selector比XPATH更快。