是否可以与PDF-VIEWER(Selenium或其他工具)交互?

问题描述 投票:0回答:1

这个问题最近让我抓狂,我已经在互联网上搜索了好几天,只是发现了一些未解答的问题。

是否可以以任何方式与 Chrome 浏览器内的 pdf-viewer 扩展进行交互?我只是在寻找一种方法来按下第一张图片中所示的红色标记的“打印”按钮,然后按下第二张图片中所示的标有“skriv ut”的蓝色按钮。这可以用 selenium/javascript 或任何其他工具以任何方式完成,还是我在浪费时间?预先感谢!

这里是一个测试站点:https://unec.edu.az/application/uploads/2014/12/pdf-sample.pdf

第一张图: enter image description here

第二张图: enter image description here

javascript python selenium selenium-webdriver selenium-chromedriver
1个回答
0
投票
  1. 如果 pdf 查看器插件是从与测试页面相同的站点/域下载的,那么在技术上是可行的。然而,插件是内置的,因此浏览器安全性使得 selenium/playwright“不可见”。
  2. 但是,我“部分”成功,因为我能够通过 selenium 输入 pdf 密码。我需要将 Tab 键发送到浏览器,直到 elementid 以“DocumentViewer_”开头。之后我发送了密钥,通常会输入密码。

c# 中的示例(不幸的是我不会 js)可能会给你一些想法。

bool reachedDocumentViewer=false;
Actions actions = new Actions(_driver);
while (!reachedDocumentViewer) 
{
    actions.SendKeys(Keys.Tab).Perform();
    Thread.Sleep(100);  // or whatever short time needed 
    IWebElement activeElement = _driver.SwitchTo().ActiveElement();
    var elementId = new String (activeElement.GetDomAttribute("id"));
    if (elementId.StartsWith("DocumentViewer_")) {
        reachedDocumentViewer = true;
    }
    // I'd suggest adding circuit breaker so you don't loop forever
}
actions.SendKeys(pdfPassword).Perform();
_driver.SwitchTo().ParentFrame();
© www.soinside.com 2019 - 2024. All rights reserved.