使用 Saucelabs 上传量角器文件

Protractor File Upload with Saucelabs

我正在使用量角器测试一个 AngularJS 项目。我有一个图像文件上传测试,它在我的本地 mac machine 上正常工作并正确通过。但是,当我 运行 通过 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 绑定或量角器中的错误,或者版本不匹配)。

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