首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用selenium在chrome中截取整页屏幕

如何使用selenium在chrome中截取整页屏幕
EN

Stack Overflow用户
提问于 2018-01-11 14:41:31
回答 3查看 2.9K关注 0票数 0

在selenium工具中,如何截取整个页面的截图以及如何滚动页面?如果我们使用这个代码,

代码语言:javascript
复制
JavascriptExecutor js = ((JavascriptExecutor) driver);
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");

它直接移动到页面的底部。

EN

回答 3

Stack Overflow用户

发布于 2018-01-11 21:09:15

代码语言:javascript
复制
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();
票数 1
EN

Stack Overflow用户

发布于 2018-01-11 16:33:47

为此,我们需要下载ashot.jar文件并将其与selenium jar文件一起添加到项目中

代码语言:javascript
复制
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方法控制滚动速度。

希望这能有所帮助

票数 0
EN

Stack Overflow用户

发布于 2018-01-11 16:38:17

在selenium中使用shutterbug的jar文件。你可以在这里下载文件:http://book2s.com/java/jar/s/selenium-shutterbug/download-selenium-shutterbug-0.4.html

下面是将放入代码中的命令:

代码语言:javascript
复制
Shutterbug.shootPage(driver, ScrollStrategy.BOTH_DIRECTIONS).save("path to save image");

您不需要处理任何滚动,这将自动捕获整个页面的屏幕截图

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48201166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档