使用Protractor使用browserstack上传本地文件

时间:2019-05-01 10:25:41

标签: selenium protractor browserstack

我有一个简单的脚本,试图将文件直接上传到我的应用程序。此测试在我的本地设置(win10 + chrome 73)上运行良好,但是在通过browserstack-local(据我所知设置了到本地计算机的安全连接)运行时,我收到以下错误。

Failed: invalid argument: File not found : C:\correctPath/correctFileName.zip
[Chrome #01]         (Session info: chrome=73.0.3683.86)
[Chrome #01]         (Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Windows NT 10.0.15063 x86_64) (WARNING: The server did not provide any stacktrace information)

我正在打印以下确认,所以我知道路径正确。

Code

哪个生产

[Chrome #01] File Path: C:\correctPath/correctFileName.zip
[Chrome #01] File exists: true

这些是在发生故障之前打印的。

注意:我可以运行不需要上载文件的测试。

我是browserstack的新手,所以可能缺少一些简单的东西。任何帮助或建议将不胜感激。


答案:

科里(Corey)用他的回答向我指出了正确的方向。我需要在配置文件的onPrepare中添加以下两行,现在可以正常上传了。

const remote = require('selenium-webdriver/remote');
await browser.setFileDetector(new remote.FileDetector());

1 个答案:

答案 0 :(得分:1)

请参阅https://seleniumhq.github.io/docs/remote.html

的“本地文件检测器”部分
  

本地文件检测器

     

本地文件检测器允许从客户端传输文件   机器到远程服务器。例如,如果测试需要上传一个   文件到Web应用程序,远程WebDriver可以自动   将文件从本地计算机传输到远程Web服务器   在运行时。这允许从远程上传文件   机器运行测试。