gpt4 book ai didi

java - 使用 Selenium 截图

转载 作者:行者123 更新时间:2023-11-30 09:15:20 27 4
gpt4 key购买 nike

所以我正在尝试使用 selenium 截取当前页面的屏幕截图。

我见过这样的代码示例

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("location"));

但这仅在驱动程序声明为 FirefoxDriver

时有效
FirefoxDriver driver = new FirefoxDriver();

对于我的程序,我需要使用 HtmlUnitDriver

HtmlUnitDriver driver = new HtmlUnitDriver();

因为我想要 headless 浏览器,因为 FireFoxDriver 打开 firefox,然后执行所有操作。

无论如何我都可以使用 HtmlUniteDriver 截取屏幕截图,或者无论如何我可以使用另一个但没有浏览器显示所以它是 headless 的。

最佳答案

您可以做的一件事是创建您自己的 HtmlUnitDriver 扩展版本,它确实实现了 TakesScreenshot 接口(interface)。

class ExtendedHtmlUnitDriver extends HtmlUnitDriver implements TakesScreenshot {
@Override
public <X> X getScreenshotAs(OutputType<X> target) throws WebDriverException {
final String base64 = execute(DriverCommand.SCREENSHOT).getValue().toString();
return target.convertFromBase64Png(base64);
}
}

然后你可以这样做:

HtmlUnitDriver driver = new ExtendedHtmlUnitDriver();
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("location"));

此代码不完整,但应该足以显示去向。

关于java - 使用 Selenium 截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19968754/

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