让硒暂停X秒

2022-09-02 03:41:55

我试图完成的是浏览页面,等待加载某些内容,然后拍摄并保存屏幕截图。

我已经拥有的代码是

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();

我需要等待的原因,即使页面被加载,也是因为它将被加载,但是在网站上,我想在几秒钟后拍摄加载的内容照片。由于某种原因,页面没有等待,是否有另一种方法可以用来让驱动程序/页面等待X秒?


答案 1

您可以找到在初始页面加载后加载的元素,然后让Selenium等待,直到找到该元素。

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ID")));

答案 2

这不会是硒特有的东西。您只是希望Java在加载页面后但在截取屏幕截图之前睡一会儿。

Thread.sleep(4000);

把它放在你的司机.get语句之后。


推荐