使用Java更改系统时间

时间:2014-04-11 10:29:50

标签: java selenium selenium-webdriver

我遇到需要使用Java以编程方式更改系统时间的情况。有没有办法用Java或Selenium做到这一点?

2 个答案:

答案 0 :(得分:0)

,Selenium是仅与浏览器交谈的API ,因此您无法使用Selenium实现这一目标。
即使Java也没有为此提供任何API:How can I set the System Time in Java?

答案 1 :(得分:0)

为什么需要修改系统时间?我只能这样想,因为你想验证页面上日期的显示。如果是这种情况,我建议您选择' test_start_time'和' test_end_time' datestamps,并验证从selenium收到的值是否在这些限制范围内而不是断言特定时间。

如果你出于其他原因需要它,那么有选择,但他们非常hacky。 :(

  1. 如果您知道在javascript中检索日期,则可以尝试重新定义日期对象以返回所需日期而不是系统日期/时间。您需要插入一个类似于以下内容的selenium脚本:Javascript - overriding new Date() behavior to offset GMT。我真的不推荐这个,但它确实比选项2更清洁。
  2. 如果您的日期是在后端生成的,并且您可以访问后端代码,则可以向所有相关日期引用添加一个间接层,默认情况下会返回日期。然后,在启动服务器进行测试运行时,您可以根据需要模拟返回的日期(可能使用API​​来设置您的要求)。虽然这让我有点不舒服,但我真的不建议这样做。
  3. 如果您认为需要修改系统时间以适应某些导入的测试数据,则应考虑为每个测试生成此数据,甚至使用http://velocity.apache.org/之类的方法模拟现有数据以在运行时设置日期(进口前)。