[英]Select newly created elements on page - puppeteer
I can't select newly created elements made by JS after I process selected task, let's say click on button.在我处理选定的任务后,我不能 select 由 JS 新创建的元素,比如说单击按钮。 Exmp: obr.
示例:obr。
.
.
How can you see I click on button and JS adds new <tr>
to current table.你怎么能看到我点击按钮和 JS 将新的
<tr>
添加到当前表。 This <tr>
can't be seen even with即使使用该
<tr>
也无法看到
await page.evaluate(() => document.querySelector('*').outerHTML)
even I tryed to wait即使我试图等待
await page.waitForSelector(selector, { timeout: 2000 });
also with/without parametr visibility: true.也有/没有参数可见性:true。
Is there a way to research content or get changed dom?有没有办法研究内容或改变 dom? Thank you for help
谢谢你的帮助
You can use MutationObserver with only childList
option true
.您可以将MutationObserver与仅
childList
选项一起使用true
。 Something like this:像这样的东西:
const table = document.getElementById('myTable'); const observerConfig = { childList: true }; const observerCallback = (mutationsList, observer) => { for(const mutation of mutationsList) mutation.addedNodes.forEach(node => console.log(node)); }; const observer = new MutationObserver(observerCallback); observer.observe(table, observerConfig); // sample code just for adding new rows const btn = document.getElementById('myBtn'); btn.addEventListener("click",()=>{ const tr = document.createElement("TR"); const td = document.createElement("TD"); td.innerText = "I'm new"; tr.append(td); table.append(tr); });
<table id="myTable"> <tr><td>1</td></tr> </table> <button type="button" id="myBtn">Add</button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.