Chromedriver:由于页面崩溃而删除了会话



我正在使用量角器和茉莉花为我的AngularJS应用程序编写测试。

我正在使用以下代码测试文件上传案例:

const fileElem = element(by.css('input[type="file"]'));
fileElem.sendKeys(absoluteFilePath);
browser.sleep(500);

在本地与下一个包一起工作:

"chromedriver": "2.38.2", "protractor": "5.3.1", Chrome - v.66.0.3359.139

但是当我在 GitLab CI 上运行此测试时,出现错误:

[铬#01] F ✗ 应上传文件

[chrome #01] - 失败:未知错误:会话已删除,因为 页面崩溃

[chrome #01] 来自未知错误:无法确定加载状态

[铬 #01] 从选项卡崩溃

[铬 #01] (会话信息:无头铬=65.0.3325.181(

[铬 #01] (驱动程序信息:铬驱动程序=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb(,platform=Linux 4.13.5-核心-R2 x86_64(

我正在使用ng文件上传指令。

感谢您的帮助!

我在VPS上运行Selenium时遇到了同样的问题。5小时后,我发现,太多未关闭的进程尝试使用驱动程序。尝试 Ti 杀死他们

pkill -f chrome*

sendKeys逐个输入字符串字符,则模型将在输入每个字符时检测更改。因此,如果文件路径有 10 个字符,则模型将检测到 10 次更改。每次模型更改都会触发文件上传。但是前 9 次的文件路径不正确,因此频繁上传文件会导致浏览器崩溃。

const fileElem = element(by.css('input[type="file"]'));
// input file path by javascript in silent to avoid multiple model change
browser.executeScript(
'arguments[0].value=arguments[1];',
fileElem.getWebElement(),
absoluteFilePath 
);
// input a blank space at the end of file path 
// to let model detect change, then trigger file uploading.
fileElem.sendKeys(" "); 

最新更新