小编Hel*_*len的帖子

如何在 Selenium Chromedriver 中设置时区?

我不知道如何在使用 Chromedriver 时设置时区。是否有一些 ChromeOptions 参数之类的?

问题是,当我访问某些站点(例如https://whoer.net)时,它显示的系统时间等于 Windows 上设置的时间。而且我希望能够以某种方式更改 Chromedriver 的时区以执行时区相关测试。

我尝试设置一些 chrome 选项:

Map<String, Object> chromeOptions = new HashMap<String, Object>();
chromeOptions.put("args", Arrays.asList("--disable-system-timezone-automatic-detection", "--local-timezone"));
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
Run Code Online (Sandbox Code Playgroud)

它不起作用。

尝试使用 Javascript 做一些奇怪的事情:

((JavascriptExecutor) driver).executeScript("Date.prototype.getTime = function() { return 1 };");
   
Run Code Online (Sandbox Code Playgroud)

它也没有帮助。

编辑:

发现这个https://sqa.stackexchange.com/questions/8838/faking-system-time-date-with-selenium-webdriver

尝试使用从TimeShift.js复制的代码在页面上执行 javascript,如下所示:

((JavascriptExecutor) driver).executeScript("/*code from TimeShift.js here*/ TimeShift.setTimezoneOffset(-60);");
Run Code Online (Sandbox Code Playgroud)

https://whoer.net 上的系统时间没有改变。我究竟做错了什么?

javascript java selenium selenium-chromedriver selenium-webdriver

5
推荐指数
3
解决办法
9267
查看次数