selenium - 在 selenium chrome 驱动程序中伪造系统日期
问题描述
所以我有这个我需要运行的测试和它基于时间的测试。有点像在特定日期之间运行的折扣活动。我想在浏览器中伪造系统日期。
该网页在加载后立即检查系统日期。那么有什么办法可以在加载之前更改日期。现在我可以注入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 脚本中,并按照我上面提到的方式使用它。
推荐阅读
- javascript - 对象在传递给另一个函数后发生了变化
- azure-virtual-network - 当 VM 存在于负载平衡器 VNET 之外时,无法将 VM 添加到内部负载平衡器池
- firebase - 然后在包装在函数中的承诺之后调用
- html - 为什么 SVG 路径上的遮罩没有正确遮罩?
- android - 如何在xml或java中获取字体文件夹
- three.js - 三.js 通过名称属性值获取所有网格。
- javascript - ReactJS Starter - 意外的令牌 JSX
- sql-server - TSQL 将数据库 BLOB 提取到临时表中
- r - 如何在 R 中没有任何类别分组的情况下将 ggplot2 用于条形图?
- azure - 将 B2C 重定向 URL 设置为 b2clogin.com 时,我在哪里可以将 validateAuthority 设置为 false