如何使用CodeceptJS比较页面上元素的视觉差异?

时间:2019-05-10 14:11:40

标签: automated-tests codeceptjs

我刚开始使用CodeceptJS,但在使mykosts001 192.168.18.118 mykosts002 192.168.18.119 mykosts003 192.168.18.120 mykosts004 192.168.18.121 命令正常工作时遇到了一些麻烦。

这是我到目前为止的测试代码:

seeVisualDiffForElement

当我运行此代码时,它将打开Chromium浏览器(因为我将其与Puppeteer一起使用)并在第一种情况下正常运行。截取屏幕截图并将其另存为基本图像。然后,我必须关闭浏览器才能运行下一个场景。运行第二种方案后,它无法通过测试,但仍会创建屏幕截图。屏幕快照应该有所不同,但是diff屏幕快照没有任何概述的更改。

在CodeceptJS的文档中,它指出“ Feature('MyTest'); Scenario('Creating base images and comparing using the same command but ran twice', (I) => { I.amOnPage('https://testsite-90d35.firebaseapp.com/'); I.wait(1); I.saveScreenshot("Test1.png"); I.wait(1); I.seeVisualDiff("Test1.png", {tolerance: 0, prepareBaseImage: true}); }); Scenario ('Comparing the blue button on the page', async (I) => { I.amOnPage('https://testsite-90d35.firebaseapp.com/testPage.html'); I.wait(1); I.saveScreenshot("Test1.png"); I.wait(1); I.seeVisualDiffForElement(".btnBlue","Test1.png", {tolerance: 0, prepareBaseImage: false}); }); 仅在浏览器中打开baseImage的页面时才起作用,以便webdriver可以获取所提供选择器的坐标”。我的浏览器处于打开状态,但与创建基本映像的浏览器不同(因为我必须关闭它才能运行第二种情况)。这可能是测试失败并无法识别任何更改的原因吗?还是有人可以看到我做错了其他事情?

我也尝试将测试作为单个方案运行,但是它给了我相同的输出。

1 个答案:

答案 0 :(得分:0)

我被告知元素测试仅适用于WebDriver,但是我使用的是Puppeteer,因此会出现错误。