也许是个问题,但最好还是问,也许也能帮到别人。
我已经编写了一个脚本,它使用Iterator来迭代一些锚链接。锚链接通过cssSelector传递给迭代器。我的问题是两倍。
首先,跳过第一锚链接,并跳过每第二锚链接。
其次,当我的Regex被发现为真时,它点击错误的条目。
例如,我有一个具有以下链接的表:
A b、c d 1 2 3 4
如果我在循环中做了一个sys,我得到如下结果:Bd2,4,等等.
谁能指出我做错了什么,可能是我错过的一个小错误。
守则如下:
该方法由以下方法调用:
sc.searchandclick(".d_ich>div>div>div>div>a", ".*test dropbox1.*");方法是:
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时,返回以下内容:
<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>有人能指出我的错误吗?
发布于 2017-07-25 03:26:30
在循环中,您在迭代器上跳过两次。
WebElement link = iter.next(); //next
text = iter.next().getAttribute("title"); //next again!!!发布于 2017-07-25 03:28:20
以下是你问题的答案:
在while循环中,当您执行WebElement link = iter.next();时,您已经进入了下一个WebElement。因此,在下一行中,您不需要使用iter.next()。你所需要做的就是text = link.getAttribute("title");
所以你需要替换:
text = iter.next().getAttribute("title");出自:
text = link.getAttribute("title");如果这回答了你的问题,请告诉我。
https://stackoverflow.com/questions/45292281
复制相似问题