【问题标题】:Selenium - change resolution on node serviceSelenium - 更改节点服务的分辨率
【发布时间】:2016-12-20 14:16:51
【问题描述】:

我在windows server 2012 R2 上使用Selenium 3.01。 测试通过webdriver远程运行。

问题是当节点作为服务运行时,分辨率太小,测试不断失败。

在登录时将节点作为进程运行时,一切都很好,因为分辨率要好得多。

我可以看到在失败时拍摄的巨大差异。

如何更改分辨率?

Driver.set_windowsize(x,y) 

或者

Driver.maximize_window()

由于服务器的分辨率较小而无法正常工作。

有什么想法吗? 谢谢

【问题讨论】:

  • 您能否提供您在测试中遇到的失败结果 - 它们是“元素不可见”错误吗?
  • 是的,这些是错误。该站点需要最低分辨率。它没有完全响应
  • 好的 - 我自己也遇到过这个问题,我设法找到的唯一解决方法是使用 scrollIntoView 更改硒与元素的交互方式。我不认为 selenium 可以控制分辨率。

标签: windows selenium selenium-webdriver windows-services selenium-chromedriver


【解决方案1】:

我解决了这个问题。 我在 VMware ESX 上使用虚拟机。

首先我注意到通过控制台登录并尝试更改分辨率时,最大分辨率比预期的要小很多。

为了最大化最大分辨率,我遵循了VMware KB

现在,通过编辑注册表值来更改默认分辨率:

  1. 导航到:

    HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{Address of primary video card}\0000\

  2. 找到DefaultSettings.XResolution 那是你的X轴。编辑为您想要的小数。即 1152。

  3. 找到DefaultSettings.YResolution。那是你的Y轴。编辑为您想要的小数。 IE 863。

  4. 重启,大功告成。

此外,请确保您的 Selenium node 使用 Allow service to interact with desktop 作为本地系统运行。

现在您可以通过代码更改 chrome 窗口分辨率:

Driver.set_windowsize(x,y) 

【讨论】:

    【解决方案2】:

    认为这是服务限制,我们遇到了这样的问题,解决方案是从命令行启动节点。

    • 连接到远程机器
    • 从命令行启动节点
    • 关闭连接(不是通过注销,而是通过单击“X”按钮)

    这样您将暂停会话,如果您希望自动执行此命令,您可以尝试将批处理文件添加到您的启动中。

    【讨论】:

    • 这是一种解决方法,但我正在寻找一种适用于服务的解决方案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 2016-03-27
    相关资源
    最近更新 更多