Selenium网络驱动器是开源API的集合, 用于自动测试Web应用程序。为了捕获一种Selenium中的屏幕截图, 一个必须利用方法Takes Screenshot。这通知WebDriver它应该采取一种Selenium中的屏幕截图并存储它。Selenium网络驱动器该工具用于自动执行Web应用程序测试, 以验证其是否按预期工作。它支持许多浏览器。在这里, 我们将以铬为例。
语法如下:
File file = ((TakesScreenshot) driver) ;
【如何使用Java在Selenium WebDriver中截屏()】在这里, 我们将学习如何在Selenium Web驱动程序中截取屏幕截图, 并使用Java Binding突出显示该元素。
屏幕截图是进行错误分析所必需的, 尤其是在测试用例失败的情况下。每当测试用例失败时, 我们都需要一些附件来验证该失败。 Selenium可以在执行期间自动拍摄屏幕截图, 我们还可以标记边框以突出显示该元素。
在Selenium Web驱动程序中截图的步骤:
1.截屏并以文件格式存储
2.使用CopyFile方法将屏幕快照复制到某个位置
FileUtils.copyFile(File, new File(“ 你想要保存图像的位置” + 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
//WebDriverimport 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);
}
}
输出如下:
文章图片
推荐阅读
- 如何在C#中终止线程()
- 如何在一行中交换两个变量()
- 如何在Golang中分割字符串()
- Java毕业设计项目实战篇|Java项目:生鲜水果商城(java+SpringBoot+HTML+Thymeleaf+easyUI+bootstrap+mysql)
- datax|DBSwitch阉割版实现异构数据库表结构同步
- SpringMVC|软件工程专业电商网站毕业论文答辩实录(基于SSM+VUE前后端分离的 “依伴汉服”网)
- intellij-idea|springboot水果商城含后台管理系统源码
- SpringMVC|毕设|基于SSM+jsp+echarts的疫情地图系统系统(已经开源)
- e-3Podman容器管理和Cockpit管理Podman