首页  

Linux 下使用 Java PhantomJS 和 Selenium 进行网页截图     所属分类 java 浏览量 62
Linux 下使用 Java PhantomJS 和 Selenium 进行网页截图 

安装PhantomJS
从PhantomJS官方网站下载对应Linux版本的PhantomJS,并将其路径添加到系统环境变量中


Java项目中引入Selenium库 


 


        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.8.0</version>
        </dependency>

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.10.0</version>
        </dependency>


        <dependency>
            <groupId>com.codeborne</groupId>
            <artifactId>phantomjsdriver</artifactId>
            <version>1.4.4</version>
        </dependency>


然后设置PhantomJS路径
System.setProperty("phantomjs.binary.path", "/path/to/phantomjs");


编写截图代码
使用Selenium和PhantomJS创建无头浏览器实例,并访问目标URL进行截图 
打开指定的URL并保存截图到本地文件系统



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 org.openqa.selenium.phantomjs.PhantomJSDriverService;

import java.io.File;

public class WebScreenshot {
    public static void main(String[] args) throws Exception {

        String phantomjsPath = "/PATH/phantomjs/bin/phantomjs";
        System.setProperty("phantomjs.binary.path", phantomjsPath);
        // PhantomJSDriverService service = PhantomJSDriverService.createDefaultService();
        // service.setPhantomJSBinaryPath("/path/to/phantomjs");

        WebDriver driver = new PhantomJSDriver();
        driver.get("http://codefun007.xyz/");

        File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
        String destFile = "/PATH/DEST/myweb.png";
        FileUtils.copyFile(srcFile, new File(destFile));

        System.out.println(srcFile.getAbsolutePath());
        driver.quit();
    }
}




selenium-java phantomjsdriver 版本不匹配 会报错 Exception in thread "main" java.lang.NoSuchMethodError: org.openqa.selenium.remote.DesiredCapabilities.phantomjs()Lorg/openqa/selenium/remote/DesiredCapabilities; at org.openqa.selenium.phantomjs.PhantomJSDriver.(PhantomJSDriver.java:95) at WebScreenshot.main(WebScreenshot.java:19)
https://gitee.com/dyyx/work2024/tree/master/demo/seleniumdemo

上一篇     下一篇
《金融怪杰》读书笔记

《市场真相》读书笔记

Java通过URL获取页面快照

java Selenium Chrome ChromeDriver 访问指定网页并截屏

springboot Selenium Chrome ChromeDriver 实现网页截屏

Quartz 2.3.2 使用