【发布时间】:2018-01-31 09:20:16
【问题描述】:
通过使用 C# 的 Selenium,我正在尝试验证应用程序中弹出的 PDF。我单击 PDF 右上角关闭 (X) 按钮的代码有效,但验证 PDF 的任何元素的代码无效,例如:
//*[@id="plugin"]
基本上,我无法访问在 PDF 上使用 Inspect 后打开的单独开发人员工具浏览器中的任何元素。我可以访问的 PDF 关闭按钮的元素位于单独的开发者工具浏览器中。
我已经安装了适用于 Chrome 的 PDF 查看器 (PDF.js) 扩展程序。 我也尝试过切换帧:
IWebDriver
driver.SwitchTo().Window(PropertiesCollection.driver.WindowHandles.Last())
运气不好。有人可以分享一个工作代码sn-p吗?
【问题讨论】:
-
PDF 未呈现为文档对象。 Selenium 无法与 PDF 交互
-
我认为要走的路是使用将 PDF 转换为 html 的 PDF 库之一(我使用一个,但它不是免费的),然后您可以将 html 保存为 html 文件并使用 selenium 导航到它,或者更好的选择是使用 HtmlAgilityPack 加载它并以这种方式导航。说了这么多,它仍然是一个非常丑陋的过程,因为它使用 OCR - 随机 div,在两个不同元素之间剪切的单词,每个元素只是一个标签和样式信息,因此很难找到一个参考点进行导航。
标签: c# google-chrome selenium pdf