所以我有这个我需要运行的测试,并且它基于时间。有点像在特定日期之间运行的折扣活动。我想在浏览器中伪造系统日期。
网页在加载后立即检查系统日期。那么有什么方法可以在加载之前更改日期。现在我可以注入javascript,它只在函数中模拟日期。
((JavascriptExecutor) driver).executeScript("var dateYouWant = 1534413600000; Date.prototype.getTime = function() { return dateYouWant; };");
我可以永久更改日期或直到浏览器关闭吗?
您是否尝试过使用带有运行时的cmd更改系统时间?这在Windows中有效。
Runtime.getRuntime().exec("cmd /C time " + "12:13:35");
对于 MAC/Linux,您可以使用 Bash 可执行文件。
Runtime.getRuntime().exec("/bin/bash -c your_command");
例如,在 Ubuntu 中,我使用以下方法来更改时间:
sudo date --set="2018-08-08 10:05:59.990"
把它放在一个bash脚本中,并以我上面提到的方式使用它。