在Protractor测试中设置浏览器时区
Set browser timezone in a Protractor test
我正在做一个项目,其中e2e测试是使用量角器进行的。
某些测试需要验证日期/时间。在我们的持续交付平台上进行测试可以确保时区保持稳定。
但是,当测试在本地机器上运行时,时区可能会更改,测试会失败,因为捕获的浏览器在不同的时区上运行。
我需要以某种方式通过量角器控制时区,以便进行独立于平台的测试。
这可能吗?
答案很晚,但也许将来会有人使用这个。。。它有点丑,但我没有发现比它更漂亮的了。它可能不适合你,这取决于你的应用程序如何检测时区。如果使用getTimezoneOffset(),这将起作用。
基本上,它重写了Date()类,并添加了setTimezoneOffset()
- 将TimeShift.js添加到辅助对象中:https://github.com/cvakiitho/TimeShift-js/blob/master/timeshift.js
- 在测试中加载TimeShift:
var TimeShift = require('./helpers/timeshift.js');
-
执行TimeShift,并更改时区:
dvr = browser.driver; dvr.executeScript(TimeShift).then(function(){ dvr.executeScript('' + 'angular.isDate = function(x){return x instanceof Date};' + 'Date = TimeShift.Date;' + 'TimeShift.setTimezoneOffset(60);' + });
注意:每次刷新页面都会破坏此功能。
相关文章:
- 如何模拟浏览器's时区
- 用javascript设置浏览器窗口的默认时区
- 在Protractor测试中设置浏览器时区
- 模拟浏览器和服务器之间的不同时区以进行本地测试
- 如何在 Javascript 中获取浏览器的时区字符串
- JavaScript 根据浏览器时区更改我的日期
- 通过javascript从浏览器获取奥尔森时区ID信息
- 如何保存JavaScript日期'从浏览器到服务器,再返回的时区
- 浏览器的时区差异
- 我可以通过Javascript在浏览器中设置本地时区吗
- 我可以用什么方法在所有浏览器中获取时区缩写
- 如何在js中为日期选择器而不是浏览器设置时区
- 在JSF中-获取客户端的区域设置(以浏览器的时区显示时间)
- 在MVC视图中使用JavaScript将UTC时间转换为客户端浏览器的时区
- 使用javascript / angularjs在客户端浏览器上修复自定义时区
- 强制浏览器以特定时区显示所有日期
- 不同浏览器的时区
- Ext JS:无论浏览器时区如何,都以UTC显示日期
- 如何使用phstc dateFormat转换为浏览器时区
- 如何获取浏览器时区和国家名称