1

我有一个在我的应用程序中上传文件(下面的代码)并在本地测试它的测试工作完美。但是,当我使用 BrowserStack 对其进行测试时,BrowserStack 无法访问我本地计算机中的文件。

我已经检查了他们关于使用 BrowserStack 和 Node.js 的文档,但我没有看到任何关于上传功能的文档。我的问题是,我如何告诉 BrowserStack 访问我的本地文件?

有没有人遇到过同样的问题?

this.selectJmxFile = function(jmxFilePath, done){
   this.driver.findElement(webdriver.By.xpath("//input[@type='file']")).sendKeys(jmxFilePath);

   this.driver.wait(function () {
     return driver.isElementPresent(webdriver.By.css('.test.files.msg.right'));
   }, this.timeout).then(function () {
     driver.findElement(webdriver.By.css('.test.files.msg.right')).getText().then(function(text) {
       expect(text).to.equal('1 new file(s) selected');
       done();
     });
   }); 
};

其中 jmxFilePath 设置为:

this.jmxFile = process.cwd() + '/test/functional/features/data/test.jmx'; 

谢谢!

4

2 回答 2

2

好的,事实证明这还不被支持,因为这只是在 Node.js 的 selenium v​​2.45.0 中添加的。一旦支持最新版本的 selenium,BrowserStack 将具有此功能。我想我必须找到另一种解决方法!

于 2015-03-18T09:42:03.747 回答
0

您需要设置文件检测器,它将被传输到正在运行测试的远程浏览器堆栈机器 -

 webDriver.setFileDetector(new LocalFileDetector());
于 2017-07-17T09:43:44.410 回答