【问题标题】:selenium c# chrome pdf validationselenium c# chrome pdf 验证
【发布时间】: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


【解决方案1】:

如果您使用的是 Chrome 或 Firefox,则 PDF 文档通常会在另一个选项卡中打开。在这种情况下,您可以使用下面的代码(C#),这对我来说很好——

driver.SwitchTo().Window(driver.WindowHandles.Last());

这会将 Selenium 的焦点转移到最后一个窗口,然后您可以截屏以验证 PDF 是否生成。

【讨论】:

    猜你喜欢
    • 2014-02-03
    • 2017-10-22
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多