使用TestNG,有两种方法,第一种方法具有无效的凭据,但第二种方法是有效的。关注的是首先打开URL并添加了无效的凭据,然后再次打开URL并添加了有效的详细信息。为什么网址打开两次。
@Test(priority = 0)
public void one() {
driver.findElement(By.xpath(".//*[@id='user_login']")).sendKeys("In Valid email");
driver.findElement(By.xpath(".//*[@id='user_login_password']")).sendKeys("InValid password");
}
@Test(priority = 1)
public void two() {
driver.findElement(By.xpath(".//*[@id='user_login']")).sendKeys("Valid");
driver.findElement(By.xpath(".//*[@id='user_login_password']")).sendKeys("Valid");
}
@BeforeMethod
public void beforeMethod() {
// Create a new instance of the Firefox driver
driver = new FirefoxDriver();
//Put a Implicit wait, this means that any search for elements on the page could take the time the implicit wait is set for before throwing exception
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//Launch the Online Store Website
driver.get("URL");
}
@AfterMethod
public void afterMethod() {
// Close the driver
driver.quit();
}
答案 0 :(得分:1)
@BeforeMethod将在类中定义的每个@Test方法之前调用,因此,如您在代码中所见,有2个@Test批注分别为“ void one()”和“ void two()”。您的URL将打开并传递void one()方法的密钥,浏览器将按照@AfterMethod注释关闭。
在每次@Test执行之前调用@BeforeMethod,类似地,@AfterMethod将在每次@Test执行之后调用。
要一次性执行它,您必须使用 @BeforeClass 批注,这样它将一次性调用,您将获得所需的结果。与要在执行结束后关闭浏览器类似,您可以使用 @AfterClass 注释对其进行定义。
答案 1 :(得分:0)
您正在运行的2个方法,但是都正在初始化@BeforeMethod。这将两次打开UR1。而是运行@Before测试方法