我试图获取li
标签下的所有ul
标签。 ul
节点有31个li
子节点,但是使用下面的代码片段,其计数只有26。
WebElement ul_stops = driver.findElement(By.xpath("//ul[@id='lstOnwardStopInitial']"));
List<WebElement> links = ul_stops.findElements(By.tagName("li"));
由于此HTML元素具有不同的滚动条,为避免元素可见性问题,尽管'e-vhandlespace'类是自定义滚动条,但以下代码用于页面向下滚动
jse.executeScript("arguments[0].scrollIntoView(true);",driver.findElement(By.className("e-vhandlespace")));
以下代码也无助于向下滚动:
Actions actions = new Actions(driver);
actions.moveToElement(driver.findElement(By.xpath("//div[@id='lstOnwardStopInitial_container']//*[@class='e-vhandlespace']/div[1]")));
actions.click().perform();
actions.sendKeys(Keys.DOWN).perform();
答案 0 :(得分:2)
仔细看一下li-items的计数。在12和17之间有一个间隙,因此您可以得到所有物品。
答案 1 :(得分:0)
每次我遍历li项时,都可以通过按Keys.DOWN来解决滚动条问题。一次按下按键的操作无效。它既不向下滚动也不获取li项目信息,也不允许与任何li子节点进行交互。
WebElement ul_stops = driver.findElement(By.xpath(lst_StopIntial));
List<WebElement> links = ul_stops.findElements(By.tagName("li"));
for (WebElement e : links)
{
actions.moveToElement(e);
actions.sendKeys(Keys.DOWN).perform();
System.out.println(e.getText());
}
以上工作有效 谢谢 Anjana