首页 > 解决方案 > 在 selenium chrome 驱动程序中伪造系统日期

问题描述

所以我有这个我需要运行的测试和它基于时间的测试。有点像在特定日期之间运行的折扣活动。我想在浏览器中伪造系统日期。

该网页在加载后立即检查系统日期。那么有什么办法可以在加载之前更改日期。现在我可以注入javascript,它只在函数中模拟日期。

((JavascriptExecutor) driver).executeScript("var dateYouWant = 1534413600000; Date.prototype.getTime = function() { return dateYouWant; };");

我是否可以永久更改日期或直到浏览器关闭?

标签: seleniumdateselenium-chromedriver

解决方案


您是否尝试过使用带有运行时的 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 脚本中,并按照我上面提到的方式使用它。


推荐阅读