java如何使用for循环一个接一个地捕获所有“li”元素的屏幕截图
我有一个列表中的10个项目标签,并希望采取一次一个项目的列表截图等等,但我写的代码捕获整个页面截图,也希望滚动时,其余的“李”元素是隐藏的,所以只有它应该滚动并采取截图。下面是截取的代码
Image Link -: https://i.stack.imgur.com/WB6Nh.png
List<WebElement> list = driver.findElements(By.cssSelector(".search-results__list > li"));
System.out.println("Total number of items :"+list.size());
//It returns with 10 items
//Scroll and capture screenshot
for(int i= 1; i<=list.size(); i++)
{
WebElement element = driver.findElement(By.cssSelector(".search-results__list > li"));
//Get entire page screenshot
File screenshots = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
BufferedImage fullImg = ImageIO.read(screenshots);
// Get the location of element on the page
Point point = Decision_Maker.getLocation();
//Get width and height of the element
int eleWidth = Decision_Maker.getSize().getWidth();
int eleHeight = Decision_Maker.getSize().getHeight();
//Crop the entire page screenshot to get only element screenshot
BufferedImage eleScreenshot= fullImg.getSubimage(point.getX(), point.getY(),
eleWidth, eleHeight);
String location = "E:\\Screenshots\\";
Thread.sleep(3000);
//Scroll when element gets hide
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView();", element);
Thread.sleep(3000);
FileUtils.copyFile(screenshots,new File(location + "img" + i + ".jpg"));
}
# 1 楼答案
试试像这样的东西