如何让selenium web driver等待无限时间

时间:2017-10-25 10:27:05

标签: java selenium

public class Ajax_steps {

private String URL = "http://demo.guru99.com/selenium/ajax.html";
    private WebDriver driver;
    private WebDriverWait wait;

public void start(){

System.setProperty("webdriver.chrome.driver", "src/test/drivers/chromedriver.exe");
    driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
    driver.get(URL);           
wait = new WebDriverWait(driver, 3);
    wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".container")));
    driver.findElement(By.id("yes")).click();
    driver.findElement(By.id("buttoncheck")).click();
    WebElement textElement = driver.findElement(By.className("radiobutton"));
    wait.until(ExpectedConditions.visibilityOf(textElement));

driver.close();

 }
}

上面的代码工作正常。但我需要一个修改,就像我们宣布new WebDriverWait 3秒钟一样。我希望它等待无限时间......我怎么能这样做......

2 个答案:

答案 0 :(得分:0)

只需更改以下参数

user1.save().then(savedUser => console.log(`saved user: ${savedUser}`));

您应该尝试使用driver.manage().timeouts().implicitlyWait(365, TimeUnit.DAYS); ExplicitWait

,而不是在上面进行操作

FluentWait :在您的元素存在或没有给定时间天气的情况下合并

FluentWait

我希望你正在寻找这个解决方案。

答案 1 :(得分:0)

当您使用 Java 并尝试通过增加 WebDriverWait来强调 timeOutInSeconds 构造函数参数参数,我们需要记住 Java 支持原始数据类型。所以当我们提到:

wait = new WebDriverWait(driver, 3);

timeOutInSeconds 参数可以增加到 integer Primitive Data Type的最高限制,即 {{1 }} 即可。

如果您尝试将 2147483647 的时间限制超出此限制,则您使用的IDE将显示 timeOutInSeconds 或运行时,对 Compilation Errors 的调用可能会返回不正确的结果。