use*_*619 17 java selenium selenium-webdriver
我想要完成的是浏览页面,等待加载某些内容然后获取并保存屏幕截图.
我已经拥有的代码是
WebDriver driver = new FirefoxDriver();
driver.get("http://www.site.com");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
try {
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("/home/Desktop/image.png"));
} catch (Exception e) {
e.printStackTrace();
}
driver.close();
Run Code Online (Sandbox Code Playgroud)
我需要等待的原因,即使页面被加载是因为它将被加载但在网站上我想要在几秒钟后拍摄负载的内容.由于某种原因页面没有等待,是否有另一种方法可以让驱动程序/页面等待X秒?
use*_*619 11
您可以找到在初始页面加载后加载的元素,然后使Selenium等到找到该元素.
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ID")));
Run Code Online (Sandbox Code Playgroud)
那不是特定的硒特定事物.您只是希望java在加载页面之后但在拍摄屏幕截图之前暂停一下.
Thread.sleep(4000);
Run Code Online (Sandbox Code Playgroud)
把它放在你的driver.get语句之后.
如果您想延迟一定秒数,而不是尽快响应,这里有一个类似于 selenium IDE 提供的暂停功能:
public void pause(Integer milliseconds){
try {
TimeUnit.MILLISECONDS.sleep(milliseconds);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52402 次 |
| 最近记录: |