【问题标题】:Set Jenkins Windows Slave Screen Resolution For Selenium Tests为 Selenium 测试设置 Jenkins Windows 从属屏幕分辨率
【发布时间】:2023-04-05 17:39:02
【问题描述】:

我有一个 Jenkins windows 7 slave,用于使用 Selenium WebDriver(java,带有 Firefox 和 chrome 驱动程序;机器是 vmware vm)测试我的 UI webapp。 此外,slave 使用 JNLP 代理连接到 jenkins master。

问题是:在奴隶上测试失败,因为分辨率似乎是 800x600 而我需要 1920x1080-ish。

设置 selenium web 驱动程序窗口大小不会这样做,即

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

有什么想法吗?我试图弄清楚应该在哪里进行显示分辨率配置。是否应该在 JVM 端完成(因为测试由 jenkins slave 执行)?还是windows的问题?

【问题讨论】:

    标签: java selenium jenkins screen-resolution


    【解决方案1】:

    我们遇到了类似的问题,我们通过在 Windows 上设置 Jenkins 从属设备来解决该问题,并在具有 1920x1080 分辨率屏幕的 PC 上启动 RDP 的管理员会话。
    开始 -> 运行 -> mstsc /admin

    这会以所需的分辨率打开 Jenkins 从站。
    然后,您只需断开 RDP 会话,会话就会以所需的分辨率运行。

    我希望这会有所帮助。

    【讨论】:

    • 你能详细说明一下吗?您刚刚通过 RDP 手动登录吗?是一次性的,还是在每次构建之前自动完成?
    • 手动登录一次。这将创建登录会话,然后我在其中运行 Jenkins 从站。之后,我断开连接并让会话为 Jenkins 运行。
    【解决方案2】:

    显示设置应该是在从属设备上执行的一次性活动。您必须使用 RDP 以管理员身份远程进入从站以设置分辨率。

    【讨论】:

      【解决方案3】:

      我有类似的问题,然后我使用 Phantom JS 驱动程序而不是 Chrome

      试试这个:

      driver.manage().window().maximize();
      driver.manage().window().setSize(new Dimension(1936, 1176));
      

      我的问题解决了

      【讨论】:

        【解决方案4】:

        对我有用的解决方案是以“无头”模式(无 GUI)运行 Chrome。当 GUI 不可用时,它与作为服务运行的 Jenkins 代理一起使用。 这是web驱动初始化的代码示例(C#,我猜在java中会类似):

        var options = new ChromeOptions();
        options.BinaryLocation = @"C:\Program Files\Google\Chrome\Application\chrome.exe";
        options.AddArgument("Headless");
        options.AddArgument("window-size=1920,1080");
        
        driver = new ChromeDriver(@"<path>\Selenium.WebDriver.ChromeDriver.2.37.0\driver\win32", options);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-08-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多