如何测试输入类型="文件"与Browserstack

时间:2017-07-19 21:27:29

标签: javascript html intern browserstack

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

我知道Browserstack具有上传/下载功能,但是根据他们的文档我还没有完全掌握如何使用它。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

这些问题似乎没有什么不同。假设您的测试页面上出现“找不到文件”错误,我相信您的类型命令只是将密钥发送到远程浏览器的元素。

对于“文件”类型的输入元素,类型命令应首先将文件从本地计算机上传到远程计算机,然后透明地上传到测试页。如果这不起作用,那么主要是你的元素不是“文件”类型,或者你使用的实习生版本不支持远程上传/有bug。

根据我的说法,如果你有使用remotewebdriver的 selenium独立服务器和webdriver 设置,它本地也会失败。

摘自'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)
    }

----------

conf.js

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