【问题标题】:How to spoof time zone in Selenium on windows for gecko and chrome drivers?如何在 Windows 上为壁虎和 chrome 驱动程序欺骗 Selenium 中的时区?
【发布时间】:2017-09-01 12:08:02
【问题描述】:

我想在 Selenium 中为每个浏览器配置文件启动一个欺骗性时区。有没有办法在 Windows 上的 Python 中做到这一点?我读过它可以用 Ruby 和 Java 完成。

这适用于 Unix:

import os, time
time.strftime('%X %x %Z')
'12:45:20 08/19/09 CDT'
os.environ['TZ'] = 'Europe/London'
time.tzset()
time.strftime('%X %x %Z')
'18:45:39 08/19/09 BST'

我想更改浏览器时区而不是系统时区。

【问题讨论】:

  • 您可能想看看这个基于JavaScript 的解决方案或这个基于Ruby 的解决方案。
  • @DebanjanB 我可以将 timeshift Js 添加到 Python 库吗?我没有看到任何相关文档,Python 也不喜欢那里的代码...
  • 因为我刚开始使用 JS 绑定,所以评论还为时过早 :)
  • @DebanjanB github.com/SeleniumHQ/docker-selenium/wiki/Setting-a-Timezone 。不确定是否可以使用 Windows。
  • 是的,使用 Docker 似乎很可行

标签: python python-3.x selenium selenium-webdriver


【解决方案1】:

可能....?有点。我想其他人有更好的方法来做到这一点。

Chrome 的 CMD:

SET TZ=GMT-5

 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory="Person 2"

FF:

SET TZ=GMT-5
 “C:\Program Files\Mozilla Firefox\firefox.exe “  -P Person2 -no-remote"\ 

每次加载浏览器时都必须从 Python 启动 CMD(以前从未这样做过,所以不要问如何)

然后加载 whoer.net 并测试您的时区是否已更改。

此方法的局限性

  • 您必须关闭所有浏览器才能更改 TZ 变量。这意味着每个浏览器只能有一个 TZ 欺骗。

  • Chrome 的工作结果好坏参半。它起作用了,然后它就不再听我了。

  • 那么更好的方法呢?据我所知没有。我相信您可以使用 javascript 注入时区,但这远远超出了知识范围。
    很惊讶 Chrome 或 FF 上没有插件,考虑到这样的功能有多受欢迎……。美元。垄断市场也是如此。

【讨论】:

    猜你喜欢
    • 2017-07-30
    • 2018-03-17
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 2018-06-19
    • 1970-01-01
    • 2020-08-23
    相关资源
    最近更新 更多