Login.java
public class Login_Details {
public static WebDriver dr;
public void verifyLogin() throws Exception {
dr= new FirefoxDriver();
dr.get("http://www.nexterp.in:9992/NextERPQA/nerp/login");
FileInputStream fi= new FileInputStream("C:\\NexterpProject\\Next_Testdata\\src\\Testdata.xls");
Workbook wb= Workbook.getWorkbook(fi);
Sheet s= wb.getSheet(0);
dr.findElement(By.id("userName")).sendKeys(s.getCell(0,1).getContents());
dr.findElement(By.id("password")).sendKeys(s.getCell(1,1).getContents());
dr.findElement(By.xpath(".//*[@id='loginForm']/a")).click();
Thread.sleep(3000);
System.out.println("Thank you for Logging in");
}
和 的 Logout.java
public class Logout{
public static WebDriver dr;
public void comesOut() throws Exception{
Thread.sleep(1000);
dr.findElement(By.xpath("html/body/div[1]/div/div/div/div[2]/div/a[2]")).click();
System.out.println("Thank you for clicking on Logout");
dr.quit();
}
}
在上述两个程序中,为 webdriver dr创建了一个实例; 我的问题是,不是每次都为新课程创建新实例,而是告诉我如何在我的程序中使用 dr ?
答案 0 :(得分:0)
您可以将静态对象的初始化从方法移动到变量声明E.g.
public static WebDriver dr = new FirefoxDriver();
然后在
之类的地方重复使用它Login_Details.dr
答案 1 :(得分:0)
在初始化阶段制作驱动程序。
public static WebDriver dr = new FirefoxDriver();
答案 2 :(得分:0)
你可以扩展" Login.java" class in" Logout.java" 如下所示(并且也在Logout类中导入Login类):
public class Logout extends Login
然后,您可以直接在" Logout.java"
中使用dr
答案 3 :(得分:0)
创建一个BaseClass,其中包含驱动程序初始化,驱动程序为static。将BaseClass扩展到每个类并重用驱动程序对象。
public class BaseClass{
static WebDriver driver;
.
.
.
}
在Login_Details中
public class Login_Details extends BaseClass{
public void verifyLogin() throws Exception {
driver= new FirefoxDriver();
driver.get("http://www.nexterp.in:9992/NextERPQA/nerp/login");
<your code>
}
}
和Logout.java
public class Logout extends BaseClass{
public void comesOut() throws Exception{
driver.findElement(By.xpath("html/body...")).click();
<your code>
}
}
如果您不想让驱动程序保持静态,那么您最好遵循PageObject设计模式。使用它可以在不扩展BaseClass的情况下提供代码。
在Login_Details中
public class Login_Details{
WebDriver driver = null;
public Logout verifyLogin() throws Exception {
driver= new FirefoxDriver();
driver.get("http://www.nexterp.in:9992/NextERPQA/nerp/login");
<your code>
return new Logout(driver);
}
}
和Logout.java
public class Logout{
WebDriver driver;
public Logout(WebDriver driver) {
this.driver = driver;
}
public void comesOut() throws Exception{
driver.findElement(By.xpath("html/body...")).click();
<your code>
}
}
所以你的测试方法如下:
@Test
public void test1() {
Login login = new Login();
Logout logout = login.doLogin();
logout.doLogout();
}