当前位置: 首页 > 知识库问答 >
问题:

用C#中的Selenium ChromeDriver点击下载PDF不起作用

苏宏逸
2023-03-14

让我首先说,我尝试了以下链接堆栈溢出文章中的建议,但没有成功:

禁用chromedriver中的PDF查看器插件

以下是我的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)位被注释掉了,这是因为我没有看到这个:

_driver.SwitchTo().Window(_driver.WindowHandles[1]);
_driver.FindElement(By.LinkText("Open")).Click();

有人对这里发生的事情有任何可能的解决方案或洞察力吗?我对编程还比较陌生,希望得到任何建议。

如果相关的话,我试图下载的PDF是Salesforce Lightning PDF

共有1个答案

越姚石
2023-03-14

NoSuchElementException表示您的元素不存在于DOM中。

您必须将by.linktext(“open”)更改为实际的按钮选择器。

 类似资料:
  • 我还是Selenium测试世界的新手,目前正在使用SeleniumChromeWebDriver进行测试。 我想做的是在下面的弹出对话框中: < li >在文本输入框中输入一个数字 < li >单击应用按钮 < li >然后将触发web应用程序向服务器端发布信息。 这是我到目前为止发现的,如果我取消对<code>线程的注释。睡眠(500),一切都将完美工作。但是没有<code>线程。sleep(5

  • 我在https://www.yatra.com/etw-desktop/.学习自动化硒测试。当我尝试单击名为“亚洲”的图像按钮(图片已附)时,我收到一个超时异常。请帮我弄清楚出了什么问题。 显示要单击的Web元素的图像

  • 问题内容: 自最新版本以来,我经历了Chrome的某些意外行为:在Firefox中,此代码可以正常运行: 它在Chrome中不起作用(只需下载一个名为“下载”的文件),但是以前效果很好。我必须更改一下它又能正常工作吗? 问题答案: 经过研究,我终于找到了您的问题。 下载属性: 如果存在HTTP标头Content-Disposition:,并且提供的文件名与此属性不同,则HTTP标头的优先级高于此属

  • 我正在开发一个Android电视应用程序,我面临着一个与项目点击侦听器相关的奇怪问题:一切正常,但有时点击没有传播,很可能侦听器没有设置。 我将子类化,并用6个元素的行显示我的图像:这意味着网格的每一行实际上是适配器中的一行,即使从视觉上看,照片是同一个月。请看一下图片,以便更好地理解。 现在的问题是:当我启动应用程序并向下滚动时,上面图像中不可见的第一行(因此第四行,因为这里有3行被渲染)没有得

  • 在Chrome中使用Selenium IDE,我正在网站上测试一个过程。 我有一个网站,在那里我需要点击一个复选框接受使用条款,隐私条款等登录后。通过Selenium,我可以毫无问题地勾选这些框,但我无法勾选客户条款。我必须先下载这些,没有问题。不过,Selenium不会选中“接受”框。 我正在使用整个xpath,当我告诉Selenium给我看网站中的元素时,它给我看了正确的一个。我直接从Chro