Java通过selenium+ashot对网页进行长截屏

1、浏览器驱动下载地址:http://npm.taobao.org/mirrors/chromedriver

2、maven依赖

        <dependency>
            <groupId>ru.yandex.qatools.ashot</groupId>
            <artifactId>ashot</artifactId>
            <version>1.5.4</version>
            <exclusions>
                <exclusion>
                    <artifactId>selenium-remote-driver</artifactId>
                    <groupId>org.seleniumhq.selenium</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.9.0</version>
        </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>30.1-jre</version>
            </dependency>

3、代码

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
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;
import java.io.IOException;
import java.util.concurrent.TimeUnit;


public class Ashot {


      private static final String CHROME_DRIVER_PATH = "D:\\chromedriver_win32\\chromedriver.exe";


      public static void main(String[] args){
          screenshot("https://tousu.sina.com.cn/complaint/view/17352132083/","E:\\17352132083.png");
      }

      public static void screenshot(String url,String image){
          System.setProperty( "webdriver.chrome.driver" ,CHROME_DRIVER_PATH);
          WebDriver driver = new ChromeDriver();
          driver.manage().timeouts().pageLoadTimeout(30,TimeUnit.SECONDS);
          driver.manage().timeouts().setScriptTimeout(30,TimeUnit.SECONDS);
          driver.manage().window().maximize();
          driver.get(url);
          Screenshot screenshot= new AShot().shootingStrategy(ShootingStrategies.viewportPasting( 1000 )).takeScreenshot(driver);
          try {
            ImageIO.write(screenshot.getImage(), "PNG" , new File( image));
          } catch (IOException e) {
            e.printStackTrace();
          }finally {
              driver.quit();
          }

      }

}

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通过使用Selenium和ChromeDriver,你可以实现对谷歌浏览器进行抓包。以下是一些步骤: 1. 首先,确保你已经安装了JavaSelenium和ChromeDriver,并且它们的版本匹配。 2. 创建一个新的Java项目,并将Selenium和ChromeDriver的相关依赖项添加到你的项目中。 3. 初始化ChromeDriver,并设置一些参数,以便启用抓包功能。示例代码如下: ```java import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; public class ChromePacketCapture { public static void main(String[] args) { // 设置 ChromeDriver 的路径 System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver"); // 启用抓包功能 ChromeOptions options = new ChromeOptions(); options.addArguments("--proxy-server=localhost:8888"); // 将端口号替换为你自己的抓包工具的端口号 // 初始化 ChromeDriver ChromeDriver driver = new ChromeDriver(options); // 在此处添加你想要执行的测试脚本 // ... // 关闭 ChromeDriver driver.quit(); } } ``` 在上述示例代码中,`/path/to/chromedriver` 应替换为你的 ChromeDriver 的实际路径,`localhost:8888` 应替换为你使用的抓包工具的地址和端口号。 4. 编写你想要执行的测试脚本,例如打开一个网页或执行一些操作。 5. 运行你的代码,并观察抓包工具中的网络请求,你应该能够看到对谷歌浏览器的抓包结果。 请注意,抓包需要使用额外的抓包工具,例如Fiddler或Charles Proxy。在上述示例代码中,我们假设你已经安装并配置了一个抓包工具,并将其设置为代理服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值