在Protractor的Safari中选择文件

时间:2014-06-16 16:04:56

标签: angularjs safari protractor

在Safari中执行此代码并不起作用,但它适用于chrome和firefox:

var pathToFile = path.resolve('./scripts', file);
element( by.css('input[ng-file-select="onFileSelect($files)"]')).sendKeys(pathToFile);

在挖掘它时,看起来在Safari上运行的Protractor中无法以这种方式与文件输入交互。有没有人知道在Safari中将文件路径放在输入中的解决方法?

1 个答案:

答案 0 :(得分:1)

这是由于抽象漏洞,需要特定于Safari的解决方案:

  

我想那些真正想要为SafariDriver进行文件上传的人的解决方法是不要通过SafariDriver本地进行,而是使用外部代码库通过HTTP / HTTPS(POST)请求执行上传(结合任何其他形式)除了正在上传/发送的文件之外的数据,然后得到响应并检查上传是否成功,然后返回到SafariDriver代码并导航到下一页以检查上传是否成功,和/或从那里继续进行自动化的下一步。

     

此方法类似于外部使用HTTP请求的文件下载方法,已在WebDriver和Selenium用户Google群组的各个帖子中提及过。在这里,它只是相反,上传而不是下载。

     

虽然上传需要会话(cookie),但您可以提取Selenium会话cookie并使用HTTP请求。或者,如果会话与URL中的会话ID一起存储,则将其解压缩并传递HTTP请求。

<强>参考