java自动完成硒
我有一个列表,每个部分下都有多个链接。每个部分都有不同的墨水,我需要单击每个部分下的特定链接。我已经写了下面的代码,但当它执行时,它给了我:stale元素引用:元素未附加到页面文档
driver.findElement(By.xpath("//*[@id=\"s2id_CountryId\"]/a")).click();
List<WebElement> link2 = driver.findElements(By.xpath("//*[@id=\"select2-drop\"]/ul//li[.]"));
for (int i = 0; i <= link2.size(); i++) {
if (link2.get(i).getText().equalsIgnoreCase("ALGERIA")) {
link2.get(i).click();
}
}
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.findElement(By.xpath("//*[@id=\\\"s2id_GlobalId\\\"]/a")).click();
List<WebElement> link = driver.findElements(By.xpath("//*[@id=\"select2-drop\"]/ul//li[.]"));
for (int i = 0; i <= link.size(); i++) {
if (link.get(i).getText().equalsIgnoreCase("BNZ (Global)")) {
link.get(i).click();
}
}
# 1 楼答案
你可以使用:
forEach将从您的列表中获取每个链接,它将处理这些括号之间的所有链接。在这种情况下,if条件
对于第二部分,您还可以使用foreach。你也可以为每个链接设置等待时间,这样每个链接都会等待一定的时间
如果你想使用lambdas,你需要Java8
编辑:在你得到我的信息后,我设法为你写了以下内容:
希望这对你来说足够清楚