用java整合selenium写一个测试百度案例,并捕获浏览器报错信息和截图
时间: 2024-03-11 09:50:14 浏览: 74
Java开发案例-springboot-44-整合Selenium访问百度-源代码+文档.rar
好的,我来为您提供一个 Java 整合 Selenium 的测试百度案例,并捕获浏览器报错信息和截图的示例代码:
```java
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class TestBaidu {
public static void main(String[] args) {
// 设置 ChromeDriver 路径
System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
// 创建 WebDriver 对象
WebDriver driver = new ChromeDriver();
try {
// 打开百度首页
driver.get("https://www.baidu.com/");
// 在搜索框中输入关键字
driver.findElement(By.id("kw")).sendKeys("Selenium");
// 点击搜索按钮
driver.findElement(By.id("su")).click();
// 等待搜索结果加载完成
Thread.sleep(3000);
// 截图并保存到本地
takeScreenshot(driver, "baidu-search-results");
} catch (Exception e) {
// 捕获异常并打印错误信息
e.printStackTrace();
// 截图并保存到本地
takeScreenshot(driver, "baidu-error");
} finally {
// 关闭浏览器
driver.quit();
}
}
// 截图方法
public static void takeScreenshot(WebDriver driver, String filename) {
try {
// 获取当前时间字符串
LocalDateTime currentDateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss");
String timestamp = currentDateTime.format(formatter);
// 创建截图目录
Path screenshotsDir = Paths.get("screenshots");
if (!Files.isDirectory(screenshotsDir)) {
Files.createDirectory(screenshotsDir);
}
// 截图并保存到本地
File screenshotFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
Path screenshotPath = screenshotsDir.resolve(filename + "_" + timestamp + ".png");
Files.copy(screenshotFile.toPath(), screenshotPath);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
注意,上述代码中的 `path/to/chromedriver` 需要替换为您本地 ChromeDriver 的路径。此外,当代码执行出现异常时,会自动捕获异常并执行截图操作,将截图保存到本地的 `screenshots` 目录下。
希望这个示例能够对您有所帮助!
阅读全文