1

当使用 karate chromedriver 选择 PDF 超链接时,文件将在新选项卡中打开,而不是下载到本地系统。我在配置驱动程序时尝试使用以下 ChromeOptions,但它们看起来都不适合我。

karate.configure('driver;, {type:'chromedriver', 可执行文件: path, webDriverSession:{desiredCapabilities:{browserName:'chrome', "goog:chromeOptions":{"prefs": {"pdfjs.disabled": true }} }}});

以下首选项也不起作用。

"prefs": {"plugins.always_open_pdf_externally": true,"plugins.plugins_disabled", "Chrome PDF 查看器"}

我浏览了空手道文档,但找不到类似的主题。如果有人可以帮助我解决这个问题或指导我查看文档,我真的很感激。

4

3 回答 3

1

感谢彼得和马蒂亚斯的想法。使用 JavaScript 更新元素 DOM 结构后,我可以下载文件。

var lnkName = element.attribute['href'];
script("document.getElelmentById('pageLinks').setAttribute('download','"+lnkName+"');");
element.click();
于 2021-10-19T17:32:12.477 回答
1

通过 WebDriver 下载文件恰好是他们最糟糕的做法之一。建议只从 DOM 获取 URI 并使用您可用的任何 http 客户端。

于 2021-10-19T15:58:06.337 回答
0

我强烈建议在这种情况下,您只需获取 PDF 的超链接并使用空手道 API 测试功能将文件下载到您想要的任何位置。您可以在此处找到提示:如何从空手道的 api 端点获取下载的 xlsx 文件?- 并查看空手道演示中的“upload.feature”示例。

如果你需要执行一些JS来获取文件的最终URL,那是很有可能的:https ://stackoverflow.com/a/60800181/143475

否则你需要继续做一些研究,我不知道答案,希望你能回馈你的发现。

于 2021-10-19T15:57:10.500 回答