如何使用Java Selenium捕获远程网站

如何使用Java Selenium捕获远程网站,java,selenium,Java,Selenium,有人能告诉我如何使用JavaSelenium捕获网页吗?举个例子……我想这就是你想要的。但如果不是,请尝试更具体一些 CaptureEnterpageScreenshot( 文件名(kwargs) 将当前窗口画布的全部内容保存到PNG文件中。 将此与 captureScreenshot命令,其中 捕获操作系统的内容 视口(即当前显示的内容) 显示在显示器上),以及 仅在RC中实现。 目前这只适用于Firefox 在chrome模式和IE模式下运行时 非HTA使用的实验方法 “Snapsie”实用

有人能告诉我如何使用JavaSelenium捕获网页吗?举个例子……

我想这就是你想要的。但如果不是,请尝试更具体一些

CaptureEnterpageScreenshot( 文件名(kwargs) 将当前窗口画布的全部内容保存到PNG文件中。 将此与 captureScreenshot命令,其中 捕获操作系统的内容 视口(即当前显示的内容) 显示在显示器上),以及 仅在RC中实现。 目前这只适用于Firefox 在chrome模式和IE模式下运行时 非HTA使用的实验方法 “Snapsie”实用程序。火狐 实现主要是从 截图!Firefox扩展。 请看 及 详情请参阅

Arguments:

    * filename - the path to the file to persist the screenshot as. No
文件扩展名将附加为 违约目录将不会被删除 如果不存在,则创建,并且 异常将被抛出,可能是由 本机代码。 *kwargs-一个kwargs字符串,用于修改屏幕截图的显示方式 他被捕了。例子: “背景=#CCFFDD”。当前有效 选项:

      background
          the background CSS for the HTML document. This may be useful
设置用于捕获的屏幕截图的步骤 例如,不太理想的布局 绝对定位导致 将画布尺寸计算为 失败并显示黑色背景 (可能是模糊的黑色文本)

请参见此处:

实质上:


“要解决这个问题,您可以使用captureScreenshotToString和CaptureEntityRepageScreenShottostring命令,这些命令返回屏幕截图的Base64编码字符串,然后您可以解码并保存到testrunner机器上的磁盘上。”

我喜欢使用PhantomJS驱动程序拍摄屏幕截图

public class Test {

    public static void main(String[] args) {
        //PhantomJS headless driver
        File file = new File("D:\\Webdriver\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe");
        System.setProperty("phantomjs.binary.path", file.getAbsolutePath());
        WebDriver driver = new PhantomJSDriver();

        //Set Size here
        driver.manage().window().setSize(new Dimension(1600,900));

        //To wait until the element get visible or invisible.
        WebDriverWait wait = new WebDriverWait(driver, 25);

        //To access url.
        driver.get("https://www.google.co.in");

        //For wait until the element get visible.
        wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("lst-ib")));

        File shot=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(shot, new File("D:\\Webdriver\\Capture.jpg"));
    }

}

它需要chrome网页的全页截图

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();

你所说的“捕获和网页”是什么意思?你只能捕获HTTP请求,等等,但不能捕获网页。我指的是使用selenium的屏幕截图
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();