【问题标题】:select file in Safari in Protractor在量角器的 Safari 中选择文件
【发布时间】:2016-02-20 07:48:52
【问题描述】:

在 Safari 中执行此代码不起作用,但在 chrome 和 firefox 中可以:

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

在 Safari 上运行的 Protractor 中,似乎无法以这种方式与文件输入进行交互。有谁知道在 Safari 中将文件路径放入输入中的解决方法?

【问题讨论】:

  • 您找到解决方法了吗?
  • 我真的不记得了。我已经好几年没碰角了

标签: angularjs safari protractor


【解决方案1】:

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

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

这种方法类似于使用外部 HTTP 请求的文件下载方法,在 WebDriver 和 Selenium 用户 Google 组的各种帖子中都提到过。这里正好相反,上传而不是下载。

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

参考文献

【讨论】:

    猜你喜欢
    • 2014-10-26
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多