java – 用于检查Selenium WebDriver中项目列表的循环
发布时间:2020-12-15 04:27:32 所属栏目:Java 来源:网络整理
导读:我已经在下面编写了检查列表Web元素的代码,但是下面的代码正在运行但是只有第一项它没有循环到循环结束. List WebElement listofItems = wd.findElements(By.xpath("//*[starts-with(@id,'result_')]//div//div[1]//div//a//img"));for (int i=1; i=listofIt
我已经在下面编写了检查列表Web元素的代码,但是下面的代码正在运行但是只有第一项它没有循环到循环结束.
List <WebElement> listofItems = wd.findElements(By.xpath("//*[starts-with(@id,'result_')]//div//div[1]//div//a//img")); for (int i=1; i<=listofItems.size(); i++) { listofItems.get(i).click(); wd.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); System.out.println(i); System.out.println("pass"); wd.navigate().back(); } 解决方法
@Saifur很好地解释了这个问题.所以,我将把代码提供给你
List <WebElement> listofItems = wd.findElements(By.xpath("//*[starts-with(@id,'result_')]//div//div[1]//div//a//img")); WebDriverWait wait = new WebDriverWait(wd,20); //Wait time of 20 seconds for (int i=1; i<=listofItems.size(); i++) { /*Getting the list of items again so that when the page is navigated back to,then the list of items will be refreshed again */ listofItems = wd.findElements(By.xpath("//*[starts-with(@id,'result_')]//div//div[1]//div//a//img")); //Waiting for the element to be visible //Used (i-1) because the list's item start with 0th index,like in an array wait.until(ExpectedConditions.visibilityOf(listofItems.get(i-1))); //Clicking on the first element listofItems.get(i-1).click(); wd.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); System.out.print(i + " element clickedt--"); System.out.println("pass"); wd.navigate().back(); } 所以,上面我稍微调整了一下你的代码并获得相关的评论,其中包含了更改以及原因.希望这对你有用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |