首先我要说的是,我已经尝试过以下链接的Stack Overflow文章所提供的建议,但都无济于事:
这篇文章与我的问题最相似,但没有答案:使用Selenium Java下载PDF在Chrome中不起作用
这是我ChromeOptions的内容:
{
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddUserProfilePreference("download.prompt_for_download", false);
chromeOptions.AddUserProfilePreference("download.directory_upgrade", true);
chromeOptions.AddUserProfilePreference("download.default_directory", DOWNLOAD_DIR);
//chromeOptions.AddUserProfilePreference("disable-popup-blocking", true);
chromeOptions.AddUserProfilePreference("plugins.plugins_disabled", "Chrome PDF Viewer");
chromeOptions.AddUserProfilePreference("plugins.always_open_pdf_externally", true);
chromeOptions.AddArgument("--no-sandbox");
_driver = new ChromeDriver(chromeOptions);
}
你会注意到("disable-popup-blocking", true)这一部分被注释了,这是因为这样做让我看到了下面的内容:
然后我又能够下载所需的PDF文件。
和所有以上链接的帖子一样,当我点击PDF链接时,我需要下载它而不是在新窗口中打开它,但由于Selenium对于PDF的限制,我无法成功地点击禁用查看器上的“打开”按钮。Visual Studio会抛出以下异常:
根据评论中的要求,这里是试图与已禁用的PDF查看器进行交互的代码:
_driver.SwitchTo().Window(_driver.WindowHandles[1]);
_driver.FindElement(By.LinkText("Open")).Click();
有没有人对这里发生的事情有任何可能的解决方案或见解?我还是相对新手,希望得到任何建议。
如果有关系的话,我正在尝试下载的PDF是Salesforce Lightning PDF。