执行自动化脚本时出现“org.openqa.selenium.WebDriverException:未知错误:由于页面崩溃而删除会话”错误

Posted

技术标签:

【中文标题】执行自动化脚本时出现“org.openqa.selenium.WebDriverException:未知错误:由于页面崩溃而删除会话”错误【英文标题】:Getting "org.openqa.selenium.WebDriverException: unknown error: session deleted because of page crash" error when executing automation scripts 【发布时间】:2021-12-11 05:08:41 【问题描述】:

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

我收到此错误,因为从 chromedriver 版本 9395,驱动程序在专门执行特定步骤定义时崩溃,而有时它执行时没有问题,这使得所有其他后续测试都失败。

尝试了几个解决方案,例如启用标志 --disable-dev-shm-usagechromedriver 选项参数,但它不起作用

我正在使用selenium-java 4.0.0

下面是java中的黄瓜步骤和后续方法

Then Click on registration application link

    @Then("^Click on registration application link$")
    public void click_on_registration_application_link() throws Throwable 
        Thread.sleep(3000);
        WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(60));
        WebElement caseManagement = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("TabCS")));
        caseManagement.click();
        Thread.sleep(1000);
        driver.findElement(By.id("tbg_registrationapplication")).click();

    

【问题讨论】:

长时间的睡眠有点奇怪。我假设这里有一个非常缓慢的后端。这实际上可能会使 Selenium 的页面加载超时。 (如果您真的需要在服务器响应之前超过 15 分钟的睡眠,您可以设置它)您可能需要在 driver.findElement 调用之前使用另一个 .get() 。 (假设页面加载超时,需要刷新DOM) 后端是 CRM,所以它肯定不是最快的。它没有那么长的睡眠,我只是把它放在看看它是否会有所作为 如果 Chrome 在您收到此错误时打开,驱动程序可能会卡在“无人区”。当将驱动程序切换到不同的选项卡/窗口/框架并关闭它们时,可能会发生这种情况。 【参考方案1】:

WebDriverException:未知错误的以下原因:

    chrome 和 chromedriver 的版本不匹配 多线程使用相同的 chrome 驱动程序 静态 webdriver 使用不当 由于 Web 应用程序中的大量 API 调用和数据处理,Chrome 内存变得很高。 在运行自动化时,我们同时使用 chrome 浏览器。

【讨论】:

以上是关于执行自动化脚本时出现“org.openqa.selenium.WebDriverException:未知错误:由于页面崩溃而删除会话”错误的主要内容,如果未能解决你的问题,请参考以下文章

在 ios 设备上运行 UI 自动化时出现时间标志错误

为啥我的脚本在执行时出现错误 1064

尝试执行 Pig Latin 脚本时出现异常

尝试运行可执行 Python 脚本时出现致命的 Python 错误

执行脚本时出现 sql 错误。在创建存储库之前尝试删除存储库

将 tkinter 脚本转换为 .exe 文件后,尝试执行时出现错误:ModuleNotFoundError: No module named 'numpy'