angularjs - 使用 Saucelabs 上传 Protractor 文件

标签 angularjs file-upload protractor saucelabs

我正在使用 Protractor 测试 AngularJS 项目。我有一个图像文件上传测试,该测试在我的本地 Mac 计算机上正常工作并通过。然而,当我通过 Saucelabs 运行相同的测试时,测试失败了。

Saucelabs 查找文件时遇到问题,只是打开一个对话框,但找不到该文件。该文件位于我的测试解决方案中,而不是在 Saucelabs 中。我在网上寻找答案,但没有看到解决这个特定问题的明确答案。下面是我用来针对应用程序上传图像文件的代码示例。

var path = require('path');

it('should upload a file', function() {
  var fileToUpload = '../some/path/foo.txt',
  absolutePath = path.resolve(__dirname, fileToUpload);

  $('input[type="file"]').sendKeys(absolutePath);    
  $('#uploadButton').click();
});

任何关于如何通过 Saucelabs 使上述代码工作的帮助或建议将不胜感激。

最佳答案

您是否尝试过类似的操作:

browser.driver.setFileDetector(new browser.driver.remote.FileDetector); 

根据the protractor issue要么是这样,要么不起作用(Selenium JavaScript 绑定(bind)或 Protractor 中的错误,或版本不匹配)。

在同一 github 问题中还有 a workaround如果主要解决方案不起作用(tldr:文件共享)。

关于angularjs - 使用 Saucelabs 上传 Protractor 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30243004/

相关文章:

forms - AngularJs 提交表单并重置 $pristine 状态

docker - WebDriverError : invalid session id

javascript - 在 Internet Explorer 中初始化 Rangy.js 时出错

javascript - 在控制台中列出正在运行的 Controller 实例及其 this 变量?

ASP.Net MVC 3 : Get length in kb of an WebImage

php - 文件上传表单不适用于大文件

php - ini_set 不会覆盖 php 设置

angular - 我如何捕获 ng-reflect-value 的值来测试其预期值?

angularjs - 执行 Protractor e2e 测试时出现错误

javascript - 在 View 中保存表单数据