Java 如何将此页作为对象传递到pom中的下一页?

Java 如何将此页作为对象传递到pom中的下一页?,java,selenium,testng,pageobjects,Java,Selenium,Testng,Pageobjects,如何将此登录页面作为对象传递到页面对象模型中的下一个页面(即仪表板页面) 我已经厌倦了返回语句,但它不起作用 public class LoginPage { WebDriver driver; public void LPage(WebDriver driver) { this.driver=driver; } By UserName = By.id("username"); By Password = By.id("pass");

如何将此登录页面作为对象传递到页面对象模型中的下一个页面(即仪表板页面)

我已经厌倦了返回语句,但它不起作用

public class LoginPage {
    WebDriver driver;

    public void LPage(WebDriver driver) {

        this.driver=driver;
    }

    By UserName = By.id("username");
    By Password = By.id("pass");
    By Login = By.xpath("//*[@type='submit']");

    public WebElement un() {
        return driver.findElement(UserName);
    }

    public WebElement pwd() {
        return driver.findElement(Password);
    }

    public WebElement submit() {
         driver.findElement(Login).click();
        return submit();
    }
}
我需要将此登录页面作为对象返回到DashBoard类,以便在登录后程序流保持连续。

submit()
函数中,您将返回
submit()
函数,但其返回类型为
WebElement

如果试图将句柄传递到下一页,则必须返回该类型的对象并传递驱动程序句柄

传递另一个页面对象:

LoginPage
中的
submit()
方法更新为:

公共仪表板页面提交(){
driver.findElement(登录)。单击();
返回新的仪表板页面(驱动程序);
}
在测试中,将其命名为:

@测试
公开无效测试(){
Webdriver driver=new Chromedriver();//对于expample,我使用的是Chromedriver
获取(“YourTestAppilcationURL”);
LoginPage LoginPage=新的LoginPage(驱动程序);
loginPage.un.sendKeys(“用户名”);
loginPage.pwd.sendKeys(“密码”);
DashboardPage DashboardPage=loginPage.submit();
//现在执行仪表板页面中的任务
}
你可以在报纸上读到



在我看来,最好不要从页面对象操作类传递另一个页面对象。 尝试在测试中启动页面对象并从那里使用它

为此,不要从submit方法返回DashboardPage对象

public void submit(){
driver.findElement(登录)。单击();
然后在测试中使用:

@Test
public void loginTest(Webdriver driver){
    LoginPage loginPage = new LoginPage(driver);
    DashboardPage dashboardPage = new DashboardPage(driver);
    loginPage.submit();
    Assert.AssertTrue(dashboardPage.isLoaded());
}

标记是用于的。听起来您在谈论其他类型的
pom.xml
这里?@DanielPryden Page对象Model@SAhmed我尝试了上述方法,但在代码的最后一行“returnnewdashboardpage(driver);”构造函数DashboardPage(WebDriver)中显示了错误是undefined@ghostdeathrider很抱歉,它不够清晰,您无法理解。只有第一部分会返回另一个页面对象,但我在第二部分提到了我的首选方式。我已编辑了答案。现在它具有两种方式的方法和测试。