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

标签 java selenium-webdriver webdriver switch-statement

我对 Java 有点陌生,正在将它与 selenium 一起使用。我有一个通用的页面对象类,它具有执行相同任务的不同方法,但根据您到达那里的方式(即您调用的方法)返回不同的页面。所以我想做的是创建一个带有 switch 语句的方法,它将返回不同的页面实例。

由于页面上的标题文本将反射(reflect)到共享页面的旅程,我想我可以使用 INVOICE_HEADER_IDENTIFIER 作为开关值吗?只是在这种情况下寻找一些指导和最佳实践。

public AccomodationInvoiceDetails searchForStudentAccomodationInvoice(String studentNo){
    assertThat(getTextFromElement(INVOICE_HEADER_IDENTIFIER).equals("Create Accommodation Invoice : Select Invoice")).isTrue();
    enterTextIntoElement(SELECT_STUDENT_FIELD_IDENTIFIER, "1990514");
    clickElement(NEXT_BUTTON_IDENTIFIER);
    waitForElementToBeDisplayed(By.id("ANSWER.TTQ.MENSYS.1."), driver, 10);
    return new AccomodationInvoiceDetails(driver);
}

public CreditNoteSelectInvoicePage searchForStudentAccomodationCreditNote(String studentNo){
    assertThat(getTextFromElement(INVOICE_HEADER_IDENTIFIER).equals("Create Accommodation Credit Note : Select Student")).isTrue();
    enterTextIntoElement(SELECT_STUDENT_FIELD_IDENTIFIER, "1990514");
    clickElement(NEXT_BUTTON_IDENTIFIER);
    waitForElementToBeDisplayed(By.id("ANSWER.TTQ.MENSYS.1."), driver, 10);
    return new CreditNoteSelectInvoicePage(driver);
}

最佳答案

你可以试试这个:

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);
    }

关于java - 使用switch语句返回不同的页面实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58270643/

相关文章:

java - gwt 套接字连接

java - 对于并发测试执行,WebDriver 设置应该是静态的吗?

java - 使用 Selenium WebDriver 和 FF24 上传文件

java - 无法使用 Java 在 Selenium Web-Driver 中执行拖放

java - 如何单击链接列表中随机生成的链接

java - 编写 jBehave 示例步骤

java - 在java中用xpath和selenium解析HTML表格数据

java - ByteBuffer 索引减一

java - 如何强制 IntelliJ 使用 Maven 下载 javadocs?

java - 如何在 Mac OS X 上在 Java 1.7 和 Java 1.8 之间来回切换?