无法调用webelement方法以传递登录详细信息的参数使用PageObject

问题描述

这是我的页面对象的主页,我在其中创建了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。对我有用

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...