栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Selenium和Java获取完整网页的屏幕截图?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Selenium和Java获取完整网页的屏幕截图?

LE: 我看到很多人都对整页的截图感兴趣,所以我想我可能会用一些肯定的答案( 银色子弹 )来更新答案。

有很多Web测试框架可以( 只需最少的设置和工作 )即可生成 整页的屏幕截图
。我来自NodeJS测试环境,因此只能担保以下内容:WebdriverIO和Google的Puppeteer。

如果有人对使用WebdriverIO的简便方法感兴趣,请查看此答案。


简而言之, 如果您仅使用Selenium 不能您不能
。但是,您可以做的是充分利用设备的(监视)视口。

因此,请使用来启动浏览器实例(驱动程序)

ChromeOptions()
,这是设置ChromeDriver特定功能的方法。我们可以执行以下操作:

  • 最大化窗口(使用
    --start-maximized
    开关);
  • 全屏显示(
    F11
    在Windows
    Control+Cmd+F
    上为-key,在Mac 上为- 键,使用
    --start-fullscreen
    开关)。
  • 注意:可在此处找到Chrome命令行开关的完整列表。

您的代码应如下所示:

// Setting your Chrome options (Desired capabilities)ChromeOptions options = new ChromeOptions();options.add_argument('--start-maximized');options.add_argument('--start-fullscreen');// Creating a driver instance with the previous capabilitiesWebDriver driver = new ChromeDriver(options);// Load page & take screenshot of full-screen pagedriver.get("http://google.com");File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);

现在关于整版的问题,所有的驱动程序(

chromedriver
geckodriver
IEDriver
EdgeDriver
,等)正在实施的webdriver
W3C
标准。因此,它们取决于WebDriver团队希望公开不同功能的功能的方式,在我们的例子中为“ Take
Screenshot”。

如果您阅读该定义,则它明确指出以下内容:

“获取屏幕截图”命令获取顶级浏览上下文的 VIEWPORT 的屏幕截图。

从旧的角度来看,某些驱动程序能够生成完整的屏幕截图(在此处了解更多信息),例如旧的FirefoxDriver,IEDriver等。现在已经不再是这样了,因为它们现在都实现了WebDriver
W3C标准。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/447885.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号