首页 > 解决方案 > 使用 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)

我正在打印以下确认信息,因此我知道路径是正确的。

代码

哪个生产

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

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

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

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


回答:

科里的回答为我指明了正确的方向。我需要在我的配置文件中将以下两行添加到我的 onPrepare 中,我现在可以正常上传了。

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

标签: seleniumprotractorbrowserstack

解决方案


请参阅“本地文件检测器”部分:https ://seleniumhq.github.io/docs/remote.html

本地文件检测器

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


推荐阅读