我想检查传递的值是否与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); 
   } 
 }   


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!