如何在需要打开每个元素页面并将元素标题与页面标题进行比较的元素列表中循环?使用硒爪哇



我有包含游戏类别列表的类别页面,我需要打开每个类别并验证此类别页面标题是否与类别列表中相同,然后对每个类别执行相同的操作。测试场景应如下所示:

  1. 打开类别页面
  2. 列出所有类别
  3. 对于每个类别获取类别文本,然后单击类别
  4. 获取打开的类别页面标题
  5. 将页面标题与类别文本进行比较
  6. 导航回"类别"页面
  7. 对所有类别重复此操作

这是代码,它通过了第一个类别,但从第二个类别失败,并给出了过时的元素异常,因为它需要再次声明类别列表

我怎样才能继续循环列表而不每次都声明它?!

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();
            }

在此处查找类别页面以供参考, "类别"页

每次重新加载页面或导航到另一个页面时,找到的对象都会丢失,从而导致元素过时。

更好的方法是将文本和链接保存在数组中,并且对于每个链接访问页面并检查标题,在这种情况下,您使用的是文本而不是对象。

相关内容

  • 没有找到相关文章

最新更新