【发布时间】:2017-05-26 14:34:51
【问题描述】:
我正在尝试编写一个模拟 GMail 登录的测试用例。尝试截取失败的测试用例的屏幕截图时,我收到以下错误: 附加整个代码 sn-p ,无法截屏并保存屏幕截图。
显示错误:
配置失败:@AfterTest Fail_Test || java.lang.IllegalArgumentException:参数数量错误`
代码sn-p:
@Test
public void login_gmail() throws IOException, InterruptedException
{
System.setProperty("webdriver.chrome.driver", "C:/Users/neha.sharma/Downloads/chromedriver.exe");
WebDriver drv=new ChromeDriver();
drv.get("http://www.gmail.com");
drv.findElement(By.id("identifierId")).sendKeys("nehasharma@gmail.com"); //USERNAME ENTRY
Thread.sleep(6000);
WebElement eleme = drv.findElement(By.xpath("html/body/div[1]/div[1]/div[2]/div[2]/form/div[2]/div/div[2]/div[1]/div[2]")); //NEXT BUTTON CLICK
JavascriptExecutor executor = (JavascriptExecutor)drv;
executor.executeScript("arguments[0].click();", eleme);
Thread.sleep(2000);
drv.findElement(By.xpath(".//*[@id='password']/div[1]/div/div[1]/input")).sendKeys("abcd234"); // PASSWORD ENTRY
Thread.sleep(5000);
//drv.findElement(By.xpath("html/body/div[1]/div[1]/div[2]/div[2]/form/div[2]/div/div/div[2]/div[1]/div[2]")).click();
WebElement eleme2 = drv.findElement(By.xpath(".//*[@id='passwordNext']/content/span")); // NEXT BUTTON CLICK AFTER ENTERING PASSWORD
JavascriptExecutor executor1 = (JavascriptExecutor)drv;
executor1.executeScript("arguments[0].click();", eleme2);
String Pass_Result= eleme2.getText();
AssertJUnit.assertEquals(Pass_Result, "NEXT");
Thread.sleep(2000);
}
@AfterTest
void Fail_Test(ITestResult Result) throws IOException
{
if (ITestResult.FAILURE==Result.getStatus())
{
TakesScreenshot ts= (TakesScreenshot)drv;
File Source=ts.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(Source, new File("D:\\TestScreen.png"));
System.out.print("Screenshot taken");
}
}
请帮我纠正这个代码sn-p。
【问题讨论】:
-
ITestResult的返回类型是什么?
-
您使用的是哪个 TestNG 版本?
-
我正在使用 TestNG 6.11 版。
标签: java selenium selenium-webdriver automated-tests testng