配置 :
硒:2.53.1
爪哇:7
Eclipse IDE:火星
我正在使用 POM 框架并为此使用 PageFactory 设计模式。我有以下主页代码:
public class RCONHomePage
{
@FindBy(css =".ng-scope>a span[translate='login.register']")
public WebElement loginLink;
@FindBy(xpath ="//a//span[text()='DASHBOARD']")
public List<WebElement> dashboardLink;
@FindBy(name = "number")
public WebElement globalSearchMobileNumbertextBox;
@FindBy(xpath = "//button[@class='btn rc-bg-border']")
public WebElement globalSearchButton;
@FindBy(css = "p.page-title.ng-scope >span")
public WebElement globalSearchResult;
WebDriver driver;
public RCONHomePage(WebDriver driver)
{
PageFactory.initElements(new AjaxElementLocatorFactory(driver, 30), this);
this.driver=driver;
}
public void clickOnLoginLink()
{
loginLink.click();
}
public void enterMobileNumberForGlobalSearch(String mobileNumber)
{
globalSearchMobileNumbertextBox.clear();
globalSearchMobileNumbertextBox.sendKeys(mobileNumber);
}
public void clickGlobalSearchButton()
{
globalSearchButton.click();
}
public String getGlobalSearchResult()
{
System.out.println(globalSearchResult.getText());
return globalSearchResult.getText();
}
}
我的用例是在全球搜索中输入有效和无效的手机号码,并验证结果天气该号码是否存在于本网站
问题是,如果手机号码无效(显示“找不到记录”),我的测试将显示正确的结果,但如果我输入有效的手机号码并验证文本,它仍然显示“找不到记录”。如果我手动找到有效数字的文本。该元素在 DOM 中不可用。
这些是场景的测试方法:
@Test
public void searchForNonExistContact() throws InterruptedException, IOException
{
homepage = new RCONHomePage(driver);
homepage.enterMobileNumberForGlobalSearch("9422307800");
homepage.clickGlobalSearchButton();
System.out.println(homepage.globalSearchResult.getText());
}
}
@Test
public void searchForExistContact() throws InterruptedException, IOException
{
homepage = new RCONHomePage(driver);
homepage.enterMobileNumberForGlobalSearch("9422307801");
homepage.clickGlobalSearchButton();
System.out.println(homepage.globalSearchResult.getText());
}
}
据我所知,如果我使用@CacheLookup
该元素,它应该会发生。我不知道为什么会这样。有人可以帮我吗 ?