首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Iterator网页链接-跳过链接

Java Iterator网页链接-跳过链接
EN

Stack Overflow用户
提问于 2017-07-25 01:06:08
回答 2查看 96关注 0票数 0

也许是个问题,但最好还是问,也许也能帮到别人。

我已经编写了一个脚本,它使用Iterator来迭代一些锚链接。锚链接通过cssSelector传递给迭代器。我的问题是两倍。

首先,跳过第一锚链接,并跳过每第二锚链接。

其次,当我的Regex被发现为真时,它点击错误的条目。

例如,我有一个具有以下链接的表:

A b、c d 1 2 3 4

如果我在循环中做了一个sys,我得到如下结果:Bd2,4,等等.

谁能指出我做错了什么,可能是我错过的一个小错误。

守则如下:

该方法由以下方法调用:

代码语言:javascript
复制
sc.searchandclick(".d_ich>div>div>div>div>a", ".*test dropbox1.*");

方法是:

代码语言:javascript
复制
public String searchandclick(String aCssSelector, String regex) {
    String text = "";


    try {

        List<WebElement> list = driver.findElements(By.cssSelector(aCssSelector));
        //System.out.println(list);
        Iterator<WebElement> iter = list.iterator();
        while (iter.hasNext()) {
            WebElement link = iter.next();
            text = iter.next().getAttribute("title");
            System.out.println(text);
            String regEx = regex;
            //Boolean b = Pattern.matches(regEx, text);

            //if (b == true) {

                //try {
                    //link.click();
                //  break;

                //} catch (Exception e) {
                    //e.printStackTrace();
                //}

            }

        //}

        //return text;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return text;

}

当我查看CSS时,返回以下内容:

代码语言:javascript
复制
<a class="vui-link" href="folder_submissions_users" title="View a submissions">a</a>
<a class="vui-link" href="folder_submissions_users" title="View b submissions">b</a>
<a class="vui-link" href="folder_submissions_users" title="View c submissions">c</a>
<a class="vui-link" href="folder_submissions_users" title="View d submissions">d</a>
<a class="vui-link" href="folder_submissions_users" title="View 1 submissions">1</a>
<a class="vui-link" href="folder_submissions_users" title="View 2 submissions">2</a>
<a class="vui-link" href="folder_submissions_users" title="View 3 submissions">3</a>
<a class="vui-link" href="folder_submissions_users" title="View test dropbox1 submissions">test dropbox1</a>

有人能指出我的错误吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-25 03:26:30

在循环中,您在迭代器上跳过两次。

代码语言:javascript
复制
 WebElement link = iter.next();              //next
 text = iter.next().getAttribute("title");   //next again!!!
票数 1
EN

Stack Overflow用户

发布于 2017-07-25 03:28:20

以下是你问题的答案:

while循环中,当您执行WebElement link = iter.next();时,您已经进入了下一个WebElement。因此,在下一行中,您不需要使用iter.next()。你所需要做的就是text = link.getAttribute("title");

所以你需要替换:

代码语言:javascript
复制
text = iter.next().getAttribute("title");

出自:

代码语言:javascript
复制
text = link.getAttribute("title");

如果这回答了你的问题,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45292281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档