在webdriver代码,如果我使用thread.sleep(20000).它等了20秒,我的代码也运行正常.如果我使用隐式等待,则归档相同
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)
它没有等待20秒,只是在3到4秒内进入下一步.和页面仍然加载.
这是有线的情况,因为我正在使用流利的等待找到一些元素.如果元素仍然在页面上加载它不会显示错误并使测试通过.
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(50, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(By.id("jxxx"));
}
});
Run Code Online (Sandbox Code Playgroud)
但是,如果我说错了ID,它会等待50秒但是其他测试没有点击就通过了......它没有显示任何错误.
我的问题是我应该如何避免,Thread.sleep()因为其他硒方法没有帮助我..
我需要使用Java将一些输出写入文件.目前我的代码是在系统控制台上编写OutputStream.我担心的是我必须编写process.getOutputStream()输出,返回一个OutputStream实例.
final PrintWriter writer = new PrintWriter(process.getOutputStream());
writer.println(200);
writer.close();
Run Code Online (Sandbox Code Playgroud)