Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chromedriver:由于页面崩溃,会话被删除_Javascript_Google Chrome_Protractor_Selenium Chromedriver_Ng File Upload - Fatal编程技术网

Javascript Chromedriver:由于页面崩溃,会话被删除

Javascript Chromedriver:由于页面崩溃,会话被删除,javascript,google-chrome,protractor,selenium-chromedriver,ng-file-upload,Javascript,Google Chrome,Protractor,Selenium Chromedriver,Ng File Upload,我正在使用量角器和茉莉花为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.33

我正在使用量角器和茉莉花为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上运行此测试时,我得到一个错误:

[chrome#01]F✗ 你应该上传这个文件

[chrome#01]-失败:未知错误:由于以下原因删除了会话: 页面崩溃

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

来自tab的[chrome#01]崩溃

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

[chrome#01](驱动程序信息:chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),平台=Linux 4.13.5-coreos-r2 x86_64)

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


谢谢你的帮助

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(" "); 

在vps上运行selenium时,我遇到了同样的问题。5小时后我发现,太多未关闭的进程试图使用驱动程序。试着把他们都杀了

pkill -f chrome*

您给定的代码不包括要单击“提交”“开始上载”的部分,因此问题是否来自这一行:
fileElem.sendKeys(absoluteFilePath
,或者在上载过程中?@yong it在模型更改时上载文件。因此在这一行:
fileElem.sendKeys(absoluteFilePath);
它更改了模型并上传了文件。在本地运行良好。上传的文件是否也存在于远程计算机上?该文件位于项目所在的文件夹中。它存在于远程计算机上。我猜无论您选择上传什么文件,您都会遇到相同的问题,您可以尝试验证我的猜测。如果是这样,我可以找到根本原因。它不起作用。我们无法从
javascript
设置