簡體   English   中英

如何與 shadow DOM 元素交互以獲取 file.pdf 和 selenium 4.x,使用 php 和 chrome 驅動程序 V95.0。?

[英]how to interact with shadow DOM elements for take the file.pdf with selenium 4.x, using php and chrome driver V95.0.?

更好地解釋:我正在自動頒發在 iframe 中生成的證書

通過 selenium 網格,我設法到達最后一個屏幕,其中 pdf 是硒網格 我嘗試使用運行 javascript 的 window.print 打印屏幕,我看到 window 用於打印,但我無法繼續:

$this->driver->executeScript("window.print()");






document.querySelector('pdf-viewer').shadowRoot.querySelector('viewer-toolbar').shadowRoot.querySelector('viewer-download-controls').shadowRoot.querySelector('cr-icon-button').click();//this work in browser, nope with selenium

從我所在的位置來看,我認為可能有一些方法可以解決我嘗試但沒有取得任何進展的問題:

  • windows.print()之后,

    • 按o鍵進入,也許(兩次),
    • 單擊按鈕保存
  • 也許使用 keyboard control + s , key enter

  • 右鍵單擊,頁面另存為,確認

  • 也許使用control + p

  • 也許使用鼠標單擊向下箭頭進行下載,但我找不到元素,或者不知道如何使用鼠標坐標

  • 當 window.print() 未顯示我喜歡的位置時,為瀏覽器設置首選項/功能保存我的 pdf 我也試過設置首選項我也試過$this->driver->getPageSource();

    $options->addArguments(['--print-to-pdf']);

我在這里找到但不確定它是否有效或如何使用它。

 <iframe src="asintegrarelatorio?UGsAuJNIMg0Bs79efCz_UN+WLY3wJLa3shybBaN2MhtwcBuQ28HYLHZjlWoShKh3akHt0HZM3+pL7TP3ksZMQQ==" name="EMBPAGE" width="900px" height="500px" frameborder="1" align="center" title="" style="" scrolling="auto"> <html><head><script src="chrome-extension://mooikfkahbdckldjjndioackbalphokd/assets/prompt.js"></script></head><body style="height: 100%; width: 100%; overflow: hidden; margin:0px; background-color: rgb(82, 86, 89);"><embed name="C065A881B0E7E51799DF65DCF351573F" style="position:absolute; left: 0; top: 0;" width="100%" height="100%" src="about:blank" type="application/pdf" internalid="C065A881B0E7E51799DF65DCF351573F"></body></html> </iframe>

driver.execute_script('document.querySelector("#printDiv > a").setAttribute("onclick","setTimeout(() => window.print(), 0);")')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM