【发布时间】:2018-05-11 03:11:02
【问题描述】:
我使用页面对象模型来创建我的代码,但 WebElement 为 null 并且无法使用注释进行实例化。为什么会出现这样的错误?
代码:
public class Login {
private String homePage = "http://localhost:63916/";
private Login_Page obj;
public Login() {
obj = new Login_Page();
}
@Given("^Volare Collector Home Page opens in browser$")
public void loadPage() {
try {
WebDriverManager.createDriver();
WebDriverManager.driver.get(homePage);
WebDriverManager.driver.manage().window().maximize();
} catch (Exception ex) {
LogManager.logger.log(Level.INFO, "Exception: " + ex.getMessage());
}
}
@When("^I login to Volare Collector with Username and Password$")
public void login() {
try {
obj.enterUsername();
WebDriverManager.driver.findElement(By.xpath("//*[@id=\"inputPassword\"]")).sendKeys("1");
WebDriverManager.driver.findElement(By.xpath("/html/body/div[1]/div/div/form/div/div[5]/div[2]/div/div[2]/button")).click();
} catch (Exception ex) {
LogManager.logger.log(Level.INFO, "Exception: " + ex.getMessage());
}
}
登录页面
public class Login_Page {
@FindBy(xpath = "//*[@id=\\\"inputName\\\"]")
WebElement username;
PropertiesManager proMgr;
public Login_Page() {
proMgr = PropertiesManager.createInstance();
}
public void enterUsername() {
String u = proMgr.getProperties().getProperty("username");
username.sendKeys(u);
}
我正在使用 Junit 运行测试。请帮助。谢谢。
【问题讨论】:
-
你必须调用一个函数来初始化它们。在您的教程中,您会看到它发生在这里: public class TestApp extends MyListener { MercuryToursLoginPage mlp; MercuryToursRegisterPage mrp; @BeforeTest public void beforeTest(String browserName) { mlp = PageFactory.initElements(driver, MercuryToursLoginPage.class); mrp = PageFactory.initElements(driver, MercuryToursRegisterPage.class);
-
感谢您的帮助。
-
你试过qaf吗?参考stackoverflow.com/questions/40130996/…