如何使用Java在Selenium WebDriver 中截取屏幕截图?
Selenium WebDriver是一组开源 API,用于自动测试 Web 应用程序。为了在Selenium中捕获屏幕截图,必须使用 Takes Screenshot 方法。这会通知 WebDriver 它应该在Selenium中截取屏幕截图并存储它。 Selenium WebDriver工具用于自动化 Web 应用程序测试以验证它是否按预期工作。它支持多种浏览器。在这里,我们将以 chrome 为例。
句法:
File file = ((TakesScreenshot) driver) ;
在这里,我们将学习如何在selenium Web 驱动程序中截取屏幕截图并使用Java绑定突出显示元素。
错误分析需要屏幕截图,尤其是在测试用例失败的情况下。每当测试用例失败时,我们需要一些附件来验证该失败。 Selenium可以在执行过程中自动截图,我们也可以标记一个边框来突出显示该元素。
在selenium web 驱动程序中截取屏幕截图的步骤:
1.截屏并以文件格式存储
2.使用 CopyFile 方法将屏幕截图复制到某个位置
FileUtils.copyFile(File, new File(“location where you want to save the image” +FileName+ “.jpeg”));
3.在元素周围创建边框:使用 JavaScript 执行器,我们可以在所需元素周围创建边框。
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].style.border = '3px solid red'", Element);
实现部分参考下面完整代码
Java
// Java program how to take
// a screenshot in Selenium
// WebDriver
import java.io.*;
class GFG {
public static void main(String[] args)
{
// Setting webDriver to chrome
System.setProperty("webdriver.chrome.driver",
"driver path");
driver = new ChromeDriver();
driver.get("https://www.google.co.in");
WebElement Element = driver.findElement(
By.xpath("//input[@name='q']"));
// Assisgnments to webDriver
MakeBorder(Element);
Thread.sleep(2000);
TakeScreenshot("GooglePage");
driver.quit();
}
// Function to Take screenshot
public static void TakeScreenshot(String FileName)
throws IOException
{
// Creating instance of File
File File = ((TakesScreenshot)driver)
.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(File,
new File("image location"
+ FileName + ".jpeg"));
}
// Function to Make border
public static void MakeBorder(WebElement Element)
{
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript(
"arguments[0].style.border = '3px solid red'",
Element);
}
}
输出: