如何使用Selenium更改页面

时间:2016-01-12 10:32:36

标签: java firefox selenium

我正在尝试使用Selenium创建一个测试用例,我将在一个名为“Policy”的页面中创建一个应用程序。在这个应用程序中,我想创建一些成员。要从“策略”页面转到“成员页面”,您必须在成功创建策略应用程序后按“成员”按钮。创建所需的所有成员后,您必须导航回“策略”页面才能继续。 (主菜单页面 - >政策页面 - >会员页面 - >政策页面)

我正在使用页面对象模式。我成功登录应用程序,导航到策略页面,创建应用程序,但无法转到成员页面以继续我的测试。当然,请返回“政策”页面。我怎样才能做到这一点?在Eclipse控制台中显示“策略创建成功”消息后,我的测试失败。

我的代码是:

@Test
public void TEST1_NavigateToPolicy() throws Exception {
    MenuPage.policySelection();
    }


@Test
public void TEST2_PolicyCreation() throws Exception {

    PolicyPage.handleMultipleWindows("Policy"); 
    PolicyPage.createPolicy( some requirements here);
    PolicyPage.checkMessageByIdContains("Operation Apply executed Successfully", MESSAGE);
            System.out.println("Policy Created succesfully");
            }


 @Test
 public void TEST3_MemberCreation() {

    //Navigate to Member Page and Create Member
    PolicyPage.clickButton(MEMBERS_BUTTON);
    }

3 个答案:

答案 0 :(得分:0)

除非我通过UI测试实际导航,否则我希望通过直接浏览到我需要的页面来尽可能多地进行导航。它使测试失败的机会更少,并且通常更快,因为它可以节省额外的步骤。

所以,我只需使用以下方法直接浏览页面:

driver.get("yourURL");

答案 1 :(得分:0)

Policy和Members页面之间的导航可以通过以下方式完成:

@Test
public void TEST3_MemberCreation() {

 // Create a policy
 TEST2_PolicyCreation();

 // Store the current window handle
 String policyPageWindow = _webDriver.getWindowHandle();

 // Clicking the "Members" button on Policy page
 WebElement clickMemBerPageButton = _webDriver.findElement(By.name("MEMBERS_BUTTON"));
 clickMemBerPageButton.click();

 // switch focus of WebDriver to the next found window handle (that's your newly opened "Members" window)
 for (String winHandle : _webDriver.getWindowHandles()) {
    _webDriver.switchTo().window(winHandle); 
 }

 //code to do something on new window (Members page)

 // Switch back to policy page
 _webDriver.switchTo().window(policyPageWindow);
 }

答案 2 :(得分:-1)

然后这将是我的示例代码。

@Test       
 public void TEST3_MemberCreation() {     
homePage = login(admin);     
PolicyPage policyPage = homePage.NavigateToPolicyPage();     
policyPage.handleMultipleWindows("Policy");      
    policyPage.createPolicy( some requirements here);     
    policyPage.checkMessageByIdContains("Operation Apply executed Successfully", MESSAGE);     
            System.out.println("Policy Created succesfully");     
            }     
MembersPage membersPage = policyPage.clickMembersButton;(You have to handle the page navigation code inside this method and return MembersPage object)
membersPage.createMember(Data);     

}     

MembersPage clickMembersButton(){     
element.click();     
switchTo.window(newWindowHandle);     
return new MembersPage();     
}