在selenium工具中,如何截取整个页面的截图以及如何滚动页面?如果我们使用这个代码,
JavascriptExecutor js = ((JavascriptExecutor) driver);
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");它直接移动到页面的底部。
发布于 2018-01-11 21:09:15
System.setProperty("webdriver.chrome.driver", "F:\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(options);
String baseUrl = "https://www.google.co.in";
driver.get(baseUrl);
String fullscreen =Keys.chord(Keys.F11);
driver.findElement(By.cssSelector("body")).sendKeys(fullscreen);
TakesScreenshot scrShot =((TakesScreenshot)driver);
File SrcFile=scrShot.getScreenshotAs(OutputType.FILE);
File DestFile=new File("F://test.png");
FileUtils.copyFile(SrcFile, DestFile);
driver.close();发布于 2018-01-11 16:33:47
为此,我们需要下载ashot.jar文件并将其与selenium jar文件一起添加到项目中
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import ru.yandex.qatools.ashot.AShot;
import ru.yandex.qatools.ashot.Screenshot;
import ru.yandex.qatools.ashot.shooting.ShootingStrategies;
import javax.imageio.ImageIO;
import java.io.File;
public class TakeFullPageScreenShot
{
public static void main(String args[]) throws Exception
{
System.setProperty("webdriver.gecko.driver", "D:\\Selenium\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("http://automationtesting.in/");
Thread.sleep(2000);
Screenshot screenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver);
ImageIO.write(screenshot.getImage(),"PNG",new
File(System.getProperty("user.dir") +"/ErrorScreenshots/FullPageScreenshot.png"));
}
}它会将页面滚动到页面末尾,并捕获屏幕截图。我们可以使用viewportPasting方法控制滚动速度。
希望这能有所帮助
发布于 2018-01-11 16:38:17
在selenium中使用shutterbug的jar文件。你可以在这里下载文件:http://book2s.com/java/jar/s/selenium-shutterbug/download-selenium-shutterbug-0.4.html
下面是将放入代码中的命令:
Shutterbug.shootPage(driver, ScrollStrategy.BOTH_DIRECTIONS).save("path to save image");您不需要处理任何滚动,这将自动捕获整个页面的屏幕截图
https://stackoverflow.com/questions/48201166
复制相似问题