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