【问题标题】:How to use navigate back in for each loop?如何为每个循环使用导航返回?
【发布时间】:2017-06-04 01:29:42
【问题描述】:

我想点击列表中的一个元素并转到不同的页面。在这个页面中,我正在使用一个字符串。然后我回去为其他人做同样的事情。但是经过一次迭代后,我的代码找不到第二个元素并关闭了浏览器。我是不是用错了导航器?

这是我的代码:

public MainPage ControlSorting() {

    List <WebElement> listItems=driver.findElement(RESULTCONT).findElements(MEDIA);
    String[] strImdb = new String[listItems.size()];

    int l = 0;
    for (WebElement ele1 : listItems) {

            ele1.click();
            WebElement element   = getElementBy(ABOUTIMDB);
            String a=  element.getAttribute("ng-genre-action");
            String[] parts = a.split(",");
            strImdb[l]=parts[1];
            l++;

        driver.navigate().back();
    }

    return this;
}

【问题讨论】:

  • listItems 中有多少项?在driver.navigate().back();之后浏览器会返回主页吗?
  • 54。是的,它会返回但没有点击第二个元素@TuyenNguyen
  • 有什么例外吗?
  • java.lang.reflect.InvocationTargetException @TuyenNguyen
  • 嗯,是的,你是对的。谢谢你的回答:) @TuyenNguyen

标签: java selenium junit


【解决方案1】:

回去后你必须重新识别对象。请在代码第一行的 for 循环中添加以下代码。

listItems=driver.findElement(RESULTCONT).findElements(MEDIA);

这应该可行。请尝试告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 2016-05-21
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 2016-03-24
    相关资源
    最近更新 更多