Selenium WebdriverIO-拍摄完整页面截图
我正在尝试使用WebdriverIO截取整个页面的屏幕截图 我已经读到,最好的方法是使用增强我的WebdriverIO流。WebdriverCSS会自动截屏整个页面 问题是WebdriverCSS不适合我。我认为这是因为它与Selenium WebdriverIO-拍摄完整页面截图,selenium,selenium-webdriver,automated-tests,webdriver-io,wdio-v4,Selenium,Selenium Webdriver,Automated Tests,Webdriver Io,Wdio V4,我正在尝试使用WebdriverIO截取整个页面的屏幕截图 我已经读到,最好的方法是使用增强我的WebdriverIO流。WebdriverCSS会自动截屏整个页面 问题是WebdriverCSS不适合我。我认为这是因为它与webdriverio@3.0.x 有什么方法可以让它工作,或者我可以使用其他解决方案吗 我的代码:(在回调中只生成未定义的值) !编辑: 这是铬的一个已知缺陷,很可能无法修复。有关更多详细信息,请参阅。您是否尝试过传递更高的div id并对其进行屏幕截图 browser
webdriverio@3.0.x
有什么方法可以让它工作,或者我可以使用其他解决方案吗
我的代码:(在回调中只生成未定义的值)
!编辑:
这是铬的一个已知缺陷,很可能无法修复。有关更多详细信息,请参阅。您是否尝试过传递更高的div id并对其进行屏幕截图
browser
.init()
.url("https://search.yahoo.com")
.webdrivercss('startpage',[
{
name: 'fullpage',
elem: '#purple-syc'
}
编辑:我也可以看到完整的网页截图时,做
.saveScreenshot('./webdrivercss.png');
使用
.scroll(“#myElement”)
再次滚动并拍摄屏幕截图这可能有很多方法,但最直接的方法是通过WebDrivero插件
npm安装--保存dev wdio屏幕截图
plugins
对象中的wdio.conf.js
文件中启用插件:plugins:{'wdio screenshot':{}
browser.saveDocumentScreenshot('/screenshotName.png');
- !Note-001:如果您不希望屏幕截图看起来像那样,那么我建议您使用一些来保证您的内容已成功加载和呈现
- !Note-002:
支持3种类型的屏幕截图(视口(标准)、文档(整版)和元素(目标元素))wdio屏幕截图
wdio.conf
文件中,如下所示
报告选项:{
诱惑:{
outputDir:“诱惑结果”
},
npm Install@wdio/allure reporter安装诱惑--保存开发人员
allure-generate./allure-results-clean
allure open
在WebDrivero v6中,您可以使用Puppeter拍摄屏幕截图。 我已经回答了
干杯!你在Chrome上有完整的屏幕截图吗?我在使用Chrome 50.0.2661.86(64位)。我听说有些浏览器有完整的屏幕截图,有些没有。@mags是的,我在Chrome上有完整的页面截图,如上所示。这是如何使用Chrome,以备不时之需。@mags我的Chrome版本-50.0.2661.86(64位)嗯。我不认为你得到了一张完整的屏幕截图。看起来你只是从你发布的图片中得到了视口。@mags增加
视口
或向下滚动
到特定位置。嘿@mags!这可能对你不再感兴趣了,但我发布了一个工作方法,可以让其他访问q的人轻松实现这一点还有一点需要澄清的是,blogpost和措辞可能会有点误导…Selenium或驱动程序团队(gheckodriver、chromedriver等)不应该实现这样的功能。除了仍然存在的明显的渲染问题之外…这应该只在高级框架级别上进行,这是合乎逻辑的(例如:WebDrivero,Puppeter)。Selenium(引用文档)是一个以用户为中心的web测试框架。添加一些用户不能做的事情,比如不滚动地查看整个页面(duh!),是团队永远不会做的事情。Selenium中的所有内容都是针对这一点实现的。(文本是一个字母一个字母地添加的,就像用户键入文本一样,第一个元素总是先单击,就像用户会单击一样,您不能像用户那样单击看不见的元素)。你明白了……诱惑生成了一个视图端口截图。OP正在寻找一种方法来捕获整个文档的截图。无论如何,OP似乎不再对这个问题的命运感兴趣了。@Seema Nair,不需要在钩子上写任何东西吗?我得到了以下错误类型错误:browser.saveDocumentScreenshot不是H的函数:\webdriver\webdriverio test\test.js:17:16在进程中。_tickCallback(internal/process/next_tick.js:68:7)如何检查插件是否加载?好的,看起来wdio屏幕截图不适用于webdriveriov5@SergeyL是的,这肯定是在一个webdriverio@4.x.x
。在不久的将来,我将尝试用v5方式更新答案。谢谢你指出那个人!@SergeyL try browser.saveScreenshot用于跨浏览器和CROs设备谢谢,是的,我使用了比较服务。很难通过它进行设置。
.saveScreenshot('./webdrivercss.png');