gpt4 book ai didi

java - 尝试在 Selenium Java 中制作屏幕截图时出现 NPE

转载 作者:行者123 更新时间:2023-12-02 08:58:21 24 4
gpt4 key购买 nike

我尝试了各种方法,但仍然得到 NPE。请参阅下面的代码片段。

TestBase.class

public WebDriver initializeDriver() { // nothing special }

public void takeScreenshot(String testResult) {
try {
File screenshotFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(screenshotFile, new File(
"//Users//roman//Desktop//MainProject//SeleniumJava//ScreenshotsFailure//"
+ testResult + "_" + "screenshot.png"));

//
// System.getProperty("user.dir")

log.info("Screenshot of " + testResult + "'s failure has been created successfully");
} catch (IOException e) {
e.printStackTrace();
log.error("Screenshot of " + testResult + "'s failure has not been created");
}
}

Listeners.class

public class Listeners implements ITestListener {
TestBase testBase = new TestBase();
Date currentDate;

@Override
public void onTestFailure(ITestResult iTestResult) {
currentDate = new Date();
testBase.takeScreenshot(iTestResult.getName() + "_" + currentDate.getTime());
}

HomePageTest.class

          @Test
void my() {
Assert.assertEquals(driver.getTitle(), "adb");
// intentionally cause False to take a screenshot of this failure
}

所以 NPE 发生的是这两行:

  File screenshotFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);

testBase.takeScreenshot(iTestResult.getName() + "_" + currentDate.getTime());

如何解决这个问题?非常感谢!

最佳答案

NPE 不能出现在两行中。总是只有一行抛出异常。打印并显示异常的堆栈跟踪。

我假设 driveriTestResultcurrentDate 为空,无论出于何种原因。您可以在使用它们之前插入一条日志消息来打印它们的值。

您还可以插入换行符,然后堆栈跟踪会准确地告诉您哪个部分有空指针:

testBase.takeScreenshot(
iTestResult.getName() + "_" +
currentDate.getTime());

关于java - 尝试在 Selenium Java 中制作屏幕截图时出现 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60352622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com