java截图
Opened this issue · 0 comments
v5tech commented
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.2.1</version>
</dependency>
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
import java.io.File;
import java.io.IOException;
public class TakesScreenshotUtils {
public static void main(String[] args) throws IOException {
takesScreenshot1();
takesScreenshot2();
}
public static void takesScreenshot1() throws IOException {
System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
System.setProperty("phantomjs.binary.path", "D:\\phantomjs.exe");
WebDriver driver = new PhantomJSDriver();
driver.manage().window().maximize();
driver.get("http://www.jianshu.com");
//指定了OutputType.FILE做为参数传递给getScreenshotAs()方法,其含义是将截取的屏幕以文件形式返回。
File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
//利用FileUtils工具类的copyFile()方法保存getScreenshotAs()返回的文件对象。
FileUtils.copyFile(srcFile, new File("screenshot.png"));
//关闭浏览器
driver.quit();
}
public static void takesScreenshot2() {
Runtime rt = Runtime.getRuntime();
Process process;
try {
process = rt.exec("D:\\phantomjs.exe" + " D:\\responsive-screenshot.js " + "http://www.baidu.com");
try {
process.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}