【发布时间】:2017-11-25 01:33:31
【问题描述】:
我不知道在使用 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);
它不起作用。
尝试使用 Javascript 做一些奇怪的事情:
((JavascriptExecutor) driver).executeScript("Date.prototype.getTime = function() { return 1 };");
也没有用。
编辑:
找到这个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);");
https://whoer.net 的系统时间没有改变。我做错了什么?
【问题讨论】:
-
它将始终显示在 Windows 上设置的时间。在 Windows 上更改时间。
-
也许这个类似的问题可以帮助你stackoverflow.com/questions/35848043/…
-
@Pv-Viana 在那个问题中,他正在从某个站点抓取一个时区,然后他可以从该站点的菜单中选择所需的时区。不一样。
-
@ElliottFrisch 我知道我可以在 Windows 上更改时间,甚至可以在 java 代码中做到这一点:
Runtime.getRuntime().exec("cmd /C time " + "16:56:10");但这个选项对我不利,因为我想执行一个多线程测试Chromedriver 的实例,我希望每个实例都有自己的系统时间。 -
请参阅:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask
标签: javascript java selenium selenium-webdriver selenium-chromedriver