如何使用浏览器堆栈测试输入类型 = "file"



所以,我一直在尝试使用Browserstack和Intern.js测试输入类型="file",但我不断收到"找不到文件"错误,因为Browserstack在我的计算机中搜索文件。

我知道浏览器堆栈具有上传/下载功能,但从他们的文档中我不太了解如何使用它。

问题似乎没有什么不同。假设您在测试页面上收到"找不到文件"错误,我相信您的 type 命令只是将键发送到远程浏览器的元素。

对于类型为">file"的输入元素,type命令应首先将文件从本地计算机上传到远程计算机,然后透明地上传到测试页。如果这不起作用,那么您的元素大多不是">file"类型,或者您使用的实习生版本不支持远程上传/有错误。

根据我的说法,它也应该在本地失败,前提是您有使用远程网络驱动程序的selenium 独立服务器和网络驱动程序设置。

摘自"https://theintern.github.io/leadfoot/module-leadfoot_Command.html#type"(由 jason0x43 共享(


从 1.5 开始,如果 WebDriver 服务器支持远程文件上载,并且您键入本地计算机上文件的路径,则该文件将以透明方式上载到远程服务器,并改为键入远程文件名。如果您不想上传本地文件,请改用 leadfoot/Session#pressKeys。


解决方案(对我有用(:


示例代码:

function () {
return this.remote
.get(require.toUrl('http://www.fileconvoy.com/'))
.findById('upfile_0')
// .type('C:\Users\hello\Desktop\documents\doc-sample1.doc')
.type("//tmp//upload.log")
.end()
.findById('readTermsOfUse').click().end()
.findById('upload_button').click().end()
.sleep(5000)
}

----------

.js

capabilities: {
fixSessionCapabilities: true,
remoteFiles: true,
.
.
.
},

使用type方法将本地系统上文件的路径输入到输入中。实习生会将文件上传到远程系统,然后在远程浏览器的文件输入中选择新上传的文件。

return remote
.findElementById('file-input')
.type('/tmp/somefile.txt') <-- Path on the local system

相关内容

最新更新