Java 使用switch语句返回不同的页面实例

Java 使用switch语句返回不同的页面实例,java,selenium-webdriver,webdriver,switch-statement,Java,Selenium Webdriver,Webdriver,Switch Statement,我对Java有点陌生,我将它与selenium一起使用。我有一个公共页面对象类,它有不同的方法执行相同的任务,但返回的页面不同,这取决于您是如何到达那里的(即,您调用的方法)。所以我想做的是创建一个带有switch语句的方法,该语句将返回不同的页面实例 由于页面上的标题文本将反映到共享页面的旅程,我想我可以使用INVOICE\u header\u标识符作为开关值?只是想在这种情况下寻求一些指导和最佳实践 公共住宿发票详细信息搜索学生住宿发票(字符串学生编号){ 资产(getTextFromEle

我对Java有点陌生,我将它与selenium一起使用。我有一个公共页面对象类,它有不同的方法执行相同的任务,但返回的页面不同,这取决于您是如何到达那里的(即,您调用的方法)。所以我想做的是创建一个带有switch语句的方法,该语句将返回不同的页面实例

由于页面上的标题文本将反映到共享页面的旅程,我想我可以使用
INVOICE\u header\u标识符
作为开关值?只是想在这种情况下寻求一些指导和最佳实践

公共住宿发票详细信息搜索学生住宿发票(字符串学生编号){
资产(getTextFromElement(发票头标识符)。等于(“创建住宿发票:选择发票”)。isTrue();
输入TextIntoElement(选择学生字段标识符,“1990514”);
单击元素(下一步按钮标识符);
waitForElementToBeDisplayed(By.id(“ANSWER.TTQ.MENSYS.1”),司机,10岁;
返回新住宿发票详细信息(驾驶员);
}
public creditnote选择Invoice页面搜索学生账户Creditnote(字符串学生编号){
assertThat(getTextFromElement(发票头标识符).equals(“创建住宿贷记单:选择学生”)).isTrue();
输入TextIntoElement(选择学生字段标识符,“1990514”);
单击元素(下一步按钮标识符);
waitForElementToBeDisplayed(By.id(“ANSWER.TTQ.MENSYS.1”),司机,10岁;
返回新的CreditNoteSelectInvoicePage(驱动程序);
}

您可以试试这个:

public Object searchForStudentAccomodation(String studentNo){
        String invoiceHeader = getTextFromElement(INVOICE_HEADER_IDENTIFIER);
        switch (invoiceHeader){
            case "Create Accommodation Credit Note : Select Student" :
                commonInvoiceAction(studentNo);
                return new CreditNoteSelectInvoicePage(driver); 

            case "Create Accommodation Invoice : Select Invoice" :
                commonInvoiceAction(studentNo);
                return new AccomodationInvoiceDetails(driver);

            default :
                System.out.println("Invalid invoice header : "+invoiceHeader);
                return  null;

        }
    }

    public void commonInvoiceAction(String studentNo){
        enterTextIntoElement(SELECT_STUDENT_FIELD_IDENTIFIER, studentNo);
        clickElement(NEXT_BUTTON_IDENTIFIER);
        waitForElementToBeDisplayed(By.id("ANSWER.TTQ.MENSYS.1."), driver, 10);
    }

试一下我的解决方案你已经通过给定的解决方案了吗hi@PritamMaske我还没有机会。“我打算今天就做这件事,然后再打给你们。”普里塔玛斯克说,这件事做得很好,谢谢你们。在我的测试中,我只需要对页面进行案例分析。