BrowserStack-使用Node.JS执行客户端JS

BrowserStack - Execute client JS with Node.js

本文关键字:JS 执行 客户端 Node 使用 BrowserStack-      更新时间:2023-09-26

作为E2E测试套件的一部分,我已经构建了一个自动化视觉回归的工具,虽然它在大多数情况下都很好,但我在尝试使用自动播放的HTML5视频测量视觉回归时遇到了问题。

由于视频是屏幕截图的移动目标,并且浏览器堆栈会话始终依赖于浏览器堆栈的服务器速度,因此很少会出现在加载屏幕后拍摄的屏幕截图足够接近以作为视觉回归测试的可靠来源的情况。在构建过程中,大多数时候都会有90%的视觉差异。

一个解决方案是将我的视觉回归工具指向?视频=关闭还是?test=true url,但我也想探索在BrowserStack中的活动浏览器会话上执行javascript,以使用HTML5视频停止并将视频的帧设置为固定点,从而作为更可靠的视觉回归源。

在browserstack webdriver中,有没有类似于camme版本的webdriverjs的执行功能,因为这感觉可能有一些场景需要执行特定的JS来充分利用视觉回归测试。

我已经找到了一个解决方案,通过查看节点模块的源代码,因此对于任何看到相同问题的人,您都可以使用以下命令执行:

driver.executeScript('alert("foo")');

对于任何在视频和视觉回归方面有类似问题的人,我决定在URL中使用查询字符串,作为一种更可靠的方式来影响网站的移动部分,因为在executeScript函数中执行JS不仅感觉不干净,而且还引入了它自己的跨浏览器特定问题,这增加了大型团队的复杂性。