如何在需要打开每个元素页面的元素列表中循环,并将元素标题与页面标题进行比较?使用SeleniumJava
我有一个类别页面,其中包含游戏类别列表,我需要打开每个类别并验证该类别页面标题是否与类别列表中的标题相同,然后对每个类别执行相同操作。。 测试场景应如下所示:如何在需要打开每个元素页面的元素列表中循环,并将元素标题与页面标题进行比较?使用SeleniumJava,java,selenium,automation,Java,Selenium,Automation,我有一个类别页面,其中包含游戏类别列表,我需要打开每个类别并验证该类别页面标题是否与类别列表中的标题相同,然后对每个类别执行相同操作。。 测试场景应如下所示: 打开类别页面 列出所有类别 对于每个类别,获取类别文本,然后单击类别 获取打开的类别页面标题 将页面标题与类别文本进行比较 导航回“类别”页面 对所有类别重复上述步骤 这是代码,它传递给第一个类别,但从第二个类别开始失败,并给出陈旧元素异常,因为它需要再次声明类别列表 我怎么能继续在列表上循环而不每次声明它 Categories.Page
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.PageFrmBanner(By.xpath(testData.getParam(“CategBannerLocator”));
List CategoriesList=Categories.ElementsList(按.xpath(testData.getParam(“CategoriesListLocator”))、testData.getParam(“标记名”);
for(WebElement:CategoriesList)
{
String ElementText=Element.getText().toLowerCase();
元素。单击();
Categories.waitForElementVisibility(By.xpath(testData.getParam(“CategoryPageTitleLocator”));
String CategoryText=driver.findElement(By.xpath(testData.getParam(“CategoryPageTitleLocator”)).getText().toLowerCase();
Categories.compareObjectValue(testCase,“”,ElementText,CategorityText);
log.info(ElementText+“已成功打开”);
driver.navigate().back();
}
在此处查找类别页面以供参考,
每次重新加载页面或导航到另一个页面时,找到的对象都会丢失,导致元素过时 更好的方法是将文本和链接保存在一个数组中,对于访问页面和检查标题的每个链接,您使用的是文本而不是对象