gpt4 book ai didi

Selenium-页面可见部分的截图

转载 作者:行者123 更新时间:2023-12-04 18:04:51 25 4
gpt4 key购买 nike

有没有办法让 Selenium WebDriver 只截取 PhantomJS 页面的可见部分?我浏览了源代码,没有 API AFAICT。那么有什么技巧可以做到这一点吗?

编辑:Chrome 已经只捕捉可见部分,因此将其作为问题的一部分删除。

最佳答案

根据 TakesScreenshot 的 JavaDoc API扩展 TakesScreenshot 的 WebDriver 将尽最大努力按优先顺序返回以下内容:

  • 整个页面
  • 当前窗口
  • 当前帧的可见部分
  • 包含浏览器的整个显示的屏幕截图

由于 PhantomJS 是 headless 浏览器,它可能没有菜单/选项卡和其他类似的浏览器 chrome。因此,您所能控制的只是浏览器窗口的尺寸。

// Portrait iPhone 6 browser dimensions
Dimension dim = new Dimension(375, 627);
driver.manage().window().setSize(dim);

截图很可能会捕获整个页面。如果您想将生成的文件限制为您要求的尺寸,您可以随时 crop it到您需要的尺寸(不理想,但 PhantomJS 不是真正的浏览器)。

  private static void capture(String url, WebDriver driver, Dimension dim, String filename) throws IOException{
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().window().setSize(dim);
driver.get(url);
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);

int w = dim.getWidth();
int h = dim.getHeight();
Image orig = ImageIO.read(scrFile);
BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
bi.getGraphics().drawImage(orig, 0, 0, w, h, 0, 0, w, h, null);
ImageIO.write(bi, "png", new File(filename));
}

关于Selenium-页面可见部分的截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28915146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com