我正在使用 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/