我有 10 个项目的列表大小和一个具有 2 次迭代的 for 循环,因此在第一次迭代中 selenium 捕获所有 10 个项目的屏幕截图,但在第二次迭代中,我不会覆盖第一次迭代中捕获的所有 10 个屏幕截图或它没有为接下来的 10 个项目捕获任何屏幕截图,它在第一次迭代中有 10 个项目,然后在第二次它总共有 20 个,所以应该有 20 个屏幕截图,但我只得到 10 个,下面是代码片段,如果任何人都可以帮助或建议我做错的事情-:
for(int i=1; i<=sheet.getLastRowNum(); i++) {
if(SearchKey.equals(result.getText()))
{
System.out.println("Search is pass!");
Thread.sleep(3000);
WebElement link = wait.until(ExpectedConditions.elementToBeClickable(By.className("search-result__result-link")));
link.click();
driver.manage().timeouts().implicitlyWait(90, TimeUnit.SECONDS);
Thread.sleep(3000);
WebElement next = driver.findElement(By.partialLinkText("employees on LinkedIn"));
next.click();
Thread.sleep(3000);
List<WebElement> list= driver.findElements(By.cssSelector(".search-results__list > li"));
System.out.println("Total number items :"+list.size());
//Scroll and capture screenshot
for(j= 1; j<=list.size(); j++)
{
WebElement elements= 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();", elements);
Thread.sleep(3000);
FileUtils.copyFile(screenshots, new File (location + "img" + j+ ".jpg"));
}
int sum = sum + list.size();
System.out.println("Total number of items available"+sum);
}
else {
System.out.println("Search is fail");
}
searchlist.clear();
}