我有类别页面,其中包含游戏类别列表,我需要打开每个类别并验证此类别页面标题与类别列表中的相同,然后对每个类别执行相同操作。 测试场景应该是这样的:
这是代码,它传递给第一类但从第二类失败并给出陈旧元素异常,因为它需要再次声明类别列表
如何在列表中继续循环而不是每次都声明它?!
Categories.PageFrmBanner(By.xpath(testData.getParam("CategBannerLocator")));
List<WebElement> CategoriesList = Categories.ElementsList(By.xpath(testData.getParam("CategoriesListLocator")), testData.getParam("TagName"));
for(WebElement Element : CategoriesList)
{
String ElementText = Element.getText().toLowerCase();
Element.click();
Categories.WaitForElementVisibilty(By.xpath(testData.getParam("CategoryPageTitleLocator")));
String CategoryText = driver.findElement(By.xpath(testData.getParam("CategoryPageTitleLocator"))).getText().toLowerCase();
Categories.compareObjectValue(testCase, "", ElementText, CategoryText);
log.info(ElementText + "Opened successfully");
driver.navigate().back();
}
在此处查找类别页面以供参考, Categories Page
答案 0 :(得分:0)
每次重新加载页面或导航到另一页时,找到的对象都将丢失,从而导致陈旧的元素。
更好的方法是保存数组中的文本和链接,并为每个链接访问页面并检查标题,在这种情况下,您使用的是文本而不是对象。