我想检查传递的值是否与ifloop
中的值匹配,如果匹配则应该执行ifloop
中的代码。发生的情况是每次我运行时它只选择第一个值而不检查其他值。我无法弄清楚我的逻辑有什么问题。下面是我的代码
for (int i = 0; i < stageListOfFilters.size(); i++) {
System.out.println(stageListOfFilters.get(i).getText());
if (finalSnapshot1.toString().equals(stageListOfFilters.get(i).getText())) {
driver.findElement(By.xpath(".//*[@id='DS']/div/div/div[1]/div[" + i + "]/div[1]")).click();
System.out.println("Value of i: " + i);
Thread.sleep(2000);
}
}
如果需要任何其他信息,请告诉我。更多详情请浏览this 链接。
下面您可以看到快照日期过滤器列表及其对应的CSS。现在我想单击匹配的标题。我该怎么做?
我尝试了下面的代码来从标题属性获取数据,但给出了空值:
stageListOfFilters = driver.findElements(By.xpath(".//*[@id='DS']")); // This collects the list
// of dates which is
// fetched later on in
// for loop
for (WebElement element : stageListOfFilters) {
System.out.println("Dates are: " + element.getAttribute("title"));
}
请您参考如下方法:
这可能是一个简单的问题,例如字符串边缘周围的空格。最好删除字符串边缘周围的空格,然后进行比较。就像,
if (finalSnapshot1.toString().trim().equals(stageListOfFilters.get(i).getText().trim())) {
在代码中,
for (int i = 0; i < stageListOfFilters.size(); i++) {
System.out.println(stageListOfFilters.get(i).getText());
if (finalSnapshot1.toString().trim().equals(stageListOfFilters.get(i).getText().trim())) {
driver.findElement(By.xpath(".//*[@id='DS']/div/div/div[1]/div[" + i + "]/div[1]")).click();
System.out.println("Value of i: " + i);
Thread.sleep(2000);
}
}