执行自动化脚本时出现“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
版本 93
到 95
,驱动程序在专门执行特定步骤定义时崩溃,而有时它执行时没有问题,这使得所有其他后续测试都失败。
尝试了几个解决方案,例如启用标志 --disable-dev-shm-usage
到 chromedriver
选项参数,但它不起作用
我正在使用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:未知错误:由于页面崩溃而删除会话”错误的主要内容,如果未能解决你的问题,请参考以下文章
尝试运行可执行 Python 脚本时出现致命的 Python 错误
执行脚本时出现 sql 错误。在创建存储库之前尝试删除存储库
将 tkinter 脚本转换为 .exe 文件后,尝试执行时出现错误:ModuleNotFoundError: No module named 'numpy'