在 selenium 4 - spock groovy 框架中以超小屏幕尺寸运行测试时出现页面崩溃错误

发布于 2025-01-13 11:45:30 字数 1028 浏览 1 评论 0原文

问题

我们最近注意到,使用 XSMALL((150..767), 1000) 屏幕尺寸的测试在 Chrome 浏览器的 HEADLESS 模式下崩溃(尽管这些测试在非无头模式下运行时通过)。

org.openqa.selenium.WebDriverException:未知错误:会话已删除 由于未知错误导致页面崩溃:无法确定加载 选项卡崩溃会话信息的状态:headless chrome=99.0.4844.51)

一旦出现此错误,测试套件中的所有剩余测试都会失败,并出现以下错误: org.openqa.selenium.NoSuchSessionException: invalid session id

另一个观察结果是,当您尝试将 chrome 浏览器从大屏幕尺寸调整为 XSMALL 屏幕尺寸时,会特别发生这种情况。我们正在使用 Selenium 4 并使用 chrome 版本 97、98 和 99 进行测试。是否有其他人面临类似的问题,您对如何解决它有建议吗?

我们尝试过

最后,我们尝试了网上提到的几种解决方案,例如增加共享内存大小、设置 chrome 选项“--disable-dev-shm-usage”和“-no-sandbox”,但没有任何效果到目前为止为我们工作。

示例代码

def "should render Home Page "() {
    given:
    String homePageURL = url +  lang

    when:
    webDriver.get(homePageURL)
    WebDriverUtil.setBrowserSizeWithSafeMaxWidth(webDriver, ScreenSize.XSmall)

    then:
    Assert homePage.getAd

Issue

We noticed recently that our tests that use XSMALL((150..767), 1000) screen size crash in HEADLESS mode for Chrome browser (although these tests pass when run in non-headless mode) .

org.openqa.selenium.WebDriverException: unknown error: session deleted
because of page crash from unknown error: cannot determine loading
status from tab crashed Session info: headless chrome=99.0.4844.51)

Once you get this error, all the remaining tests in the test suite fail with the following error: org.openqa.selenium.NoSuchSessionException: invalid session id

Another observation is that this happens specifically when you try to resize the chrome browser from Large to XSMALL screen size. We are using Selenium 4 and tested with chrome versions 97, 98 and 99. Is anyone else facing similar issue and do you have suggestions on how to fix it?

What we tried

At our end, we tried couple of solutions mentioned online like increasing shared memory size, setting chrome options “--disable-dev-shm-usage” and”—no-sandbox” but nothing worked for us so far.

Sample Code

def "should render Home Page "() {
    given:
    String homePageURL = url +  lang

    when:
    webDriver.get(homePageURL)
    WebDriverUtil.setBrowserSizeWithSafeMaxWidth(webDriver, ScreenSize.XSmall)

    then:
    Assert homePage.getAd

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文