[英]How to use XPath in a newly opened window?
使用下面的代碼(用於書簽),我試圖打開一個新的 window,查找某些跨度元素,然后單擊它們中的每一個。 但是,我無法通過 XPath 訪問新的 window 的代碼。
clickElem function
的代碼(復制和粘貼)工作正常JavaScript:
const w = window.open('https://example.com', 'Example', 'width=500, height=500');
w.clickElem = () => {
const xpath = '//span[text()="Click here"]';
const selectedNodeElements = w.document.evaluate(xpath, document, null, XPathResult.ANY_TYPE, null);
let currentNode = selectedNodeElements.iterateNext();
while (currentNode) {
currentNode.click();
currentNode = selectedNodeElements.iterateNext();
}
}
setTimeout(w.clickElem, 8000);
當我嘗試通過currentNode.textContent
訪問文本時,我收到以下錯誤:
"Error in protected function: Cannot read properties of null (reading 'textContent')"
感謝每一個提示!
你確定你已經在你的標簽里了嗎? 我正在考慮一些你需要獲得像這樣的活動標簽的東西?
在不斷地瀏覽我的代碼並遇到這個答案后,我終於發現了自己的錯誤。 .iterateNext()
不起作用,因為上下文節點被錯誤地設置為document
。 相反,應該是w.document
來引用新打開的 window。
const selectedNodeElements = w.document.evaluate(xpath, w.document, null, XPathResult.ANY_TYPE, null);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.