[英]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()
之后,
也許使用 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.