如何解决Selenide 无法下载 PDF
我在使用 Selenide 的下载功能时遇到了一些问题。这是我的流程:
- 点击按钮
- 按钮打开显示 pdf 文件的新标签,网址为: 斑点:https://hostname.apps.something.else/9365b3ab-f0ad-45e9-85d2-db7e2fb5fd2e
所以基本上新标签是在 Chrome PDF 查看器中打开的。 我试图点击新标签中隐藏的下载按钮,但没有成功。 我的想法让我想到当我点击那个按钮时,这个新标签不应该打开,下载应该开始。这意味着像我在下面所做的那样设置一些配置首选项:
Configuration.browserCapabilities = new DesiredCapabilities();
Configuration.browserSize = "1920x1080";
Configuration.fileDownload = FileDownloadMode.FOLDER;
Configuration.downloadsFolder = "./src/pdfs";
Configuration.proxyHost = "30.40.34.82";
Configuration.proxyPort = 8080;
Configuration.proxyEnabled = true;
Configuration.fileDownload = FileDownloadMode.PROXY;
Configuration.browserCapabilities.setCapability("plugins.always_open_pdf_externally",true);
Configuration.browserCapabilities.setCapability("download.prompt_for_download",false);
Configuration.browserCapabilities.setCapability("pdfjs.disabled",true);
问题是,这仍然会打开新标签,但我没有找到这样的元素
File file = applicationList.printButton.download(30000);
解决方法
为什么先将 Configuration.fileDownload
设置为 FOLDER
,然后再设置为 PROXY
?无需设置两次。
我认为您无法通过 PROXY
下载文件,因为 blob:
类型的链接不会从服务器获取文件内容。
我认为您可以删除所有这些行:
Configuration.proxyHost = "30.40.34.82";
Configuration.proxyPort = 8080;
Configuration.proxyEnabled = true;
Configuration.fileDownload = FileDownloadMode.PROXY;
Configuration.browserCapabilities.setCapability("plugins.always_open_pdf_externally",true);
Configuration.browserCapabilities.setCapability("download.prompt_for_download",false);
Configuration.browserCapabilities.setCapability("pdfjs.disabled",true);
Selenide 方法 FOLDER
应该无需所有这些棘手的设置即可下载文件。
试试
System.setProperty("chromeoptions.prefs","plugins.always_open_pdf_externally=true")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。