我正在尝试使用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);
}
答案 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();
}