问题描述
这是我的页面对象的主页,我在其中创建了UserName方法的WebElement,现在想在测试用例中调用它,但它不起作用。 向我显示元素行上的错误。
public class HomePage {
WebDriver driver;
By username = By.xpath("/html[1]/body[1]/form[1]/table[1]/tbody[1]/tr[1]/td[2]/input[1]");
By password = By.xpath("/html[1]/body[1]/form[1]/table[1]/tbody[1]/tr[2]/td[2]/input[1]");
By login = By.xpath("/html[1]/body[1]/form[1]/table[1]/tbody[1]/tr[3]/td[2]/input[1]");
static WebElement element = null;
//Experiment with webelement
public static WebElement UserName(WebDriver driver) {
element.findElement(By.xpath("/html[1]/body[1]/form[1]/table[1]/tbody[1]/tr[1]/td[2]/input[1]"));
return element;
}
public static WebElement Password(WebDriver driver) {
element.findElement(By.xpath("/html[1]/body[1]/form[1]/table[1]/tbody[1]/tr[2]/td[2]/input[1]"));
return element;
}
public static WebElement ClickLogin(WebDriver driver) {
element.findElement(By.xpath("/html[1]/body[1]/form[1]/table[1]/tbody[1]/tr[3]/td[2]/input[1]"));
return element;
}
}
这些是测试类的代码
//objLogin = new HomePage();
HomePage objLogin = new HomePage();
//input the username,password and click login.
objLogin.UserName(driver).sendKeys("mngr279645");
objLogin.Password(driver).sendKeys("Yzarazy");
objLogin.ClickLogin(driver).click();
任何帮助将不胜感激.....
解决方法
首先,我不明白为什么在不使用它并且不应该使用它的情况下,在每个选择器中进行参数设置时都需要 WebDriver驱动程序。
第二点,我建议您更多地研究PageObject体系结构,并通常使用Xpath。在上面的评论中,我仍然看不到错误消息。
,通过将pom.xml中的范围从test更改为compile。对我有用