【问题标题】:Test failed on different monitor selenium webdriver java在不同的监视器 selenium webdriver java 上测试失败
【发布时间】:2019-02-20 14:37:06
【问题描述】:

我正在使用 java 的 selenium webdriver 工作。我的办公室有 2 个屏幕,我已将 chrome 浏览器的固定窗口尺寸设置为

driver.manage().window().setSize(new Dimension(1680, 1050));

当我在办公室执行代码时,意味着当我连接到 2 个屏幕时,每个测试用例在笔记本电脑和第二个连接的 LED 上都可以正常工作,但是当我移除第二个屏幕并仅在我的笔记本电脑上工作时,测试用例开始失败。

注意:以上窗口尺寸大于笔记本电脑屏幕但小于 LED 尺寸

我进行了很多搜索以找到解决方案,但失败了。 即使我没有与外部 LED 连接,也在寻找执行测试用例的解决方案。 帮助将不胜感激。 非常感谢

【问题讨论】:

    标签: java selenium google-chrome selenium-webdriver


    【解决方案1】:

    您可以避免硬编码值先检查窗口大小,然后根据屏幕大小分配它。

      WebDriver driver = new ChromeDriver();
      driver.manage().window().maximize();
      System.out.println(driver.manage().window().getSize());
      driver.manage().window().setSize(driver.manage().window().getSize());
    

    看看有没有帮助。

    【讨论】:

    • 我明白你的意思,但为什么硬编码大小在两者上不同。从逻辑上讲,两者应该保持相同。
    • 我认为在这种情况下很难管理。实际上我想为每个屏幕制作相同的大小。如果我将根据窗口大小进行设置,那么可能会有不可点击的元素,我需要滚动到那里才能访问
    • 因为你强制设置的窗口大小大于屏幕上的实际大小。
    • 这是正确的,您肯定需要滚动。但是滚动是什么困扰您?
    • 我明白你的意思。但是我将如何管理元素。如果屏幕可能更大,如果我将在小屏幕上,则无需滚动,而不是我需要滚动以访问在大屏幕上可访问的相同元素。我该如何处理这个问题?
    【解决方案2】:

    一般在处理不同的屏幕分辨率时,我们需要严格控制所有执行从站的分辨率。举个例子,

    driver.manage().window().setSize(new Dimension(1920, 1080));

    否则我们需要使用 JS 滚动查看所有命令以通过不同分辨率的案例(但不建议考虑性能)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-28
      相关资源
      最近更新 更多