getEventListeners 未在 PuppeteerSharp 中定义
getEventListeners is not defined in PuppeteerSharp
当我尝试在 puppeteerSharp 中使用 getEventListeners
时,出现 getEventListeners is not defined
错误:
var result = await page.EvaluateExpressionHandleAsync("getEventListeners(document.forms[0].getElementsByTagName('button')[0])");
如何在 puppeteerSharp 中使用 getEventListeners
?
我为 javascript 找到了这个:
const cdp = await page.target().createCDPSession();
const listeners = await cdp.send('DOMDebugger.getEventListeners', { objectId });
然后我尝试将其转换回 C#:
var t = await page.EvaluateExpressionHandleAsync(@"document.forms[0].getElementsByTagName('button')[0]");
var client = await page.Target.CreateCDPSessionAsync();
var result = await client.SendAsync("DOMDebugger.getEventListeners", t.RemoteObject.ObjectId);
但似乎我做错了什么,我没有找到任何关于此的明确文档。
我已经找到了解决方案,这里是给可能感兴趣的人的:
首先,我们应该像这样创建一个 CDPSession
:
var client = await page.Target.CreateCDPSessionAsync();
然后我们应该评估我们的脚本以获得一个元素:
var body = await client.SendAsync("Runtime.evaluate", new { expression = "document.getElementsByTagName('input')[0]" });
最后,我们应该使用 DOMDebugger
和元素的 objectId
来得到它的 event listeners
:
var result = await client.SendAsync("DOMDebugger.getEventListeners", new { objectId = body["result"]["objectId"] });
当我尝试在 puppeteerSharp 中使用 getEventListeners
时,出现 getEventListeners is not defined
错误:
var result = await page.EvaluateExpressionHandleAsync("getEventListeners(document.forms[0].getElementsByTagName('button')[0])");
如何在 puppeteerSharp 中使用 getEventListeners
?
我为 javascript 找到了这个:
const cdp = await page.target().createCDPSession();
const listeners = await cdp.send('DOMDebugger.getEventListeners', { objectId });
然后我尝试将其转换回 C#:
var t = await page.EvaluateExpressionHandleAsync(@"document.forms[0].getElementsByTagName('button')[0]");
var client = await page.Target.CreateCDPSessionAsync();
var result = await client.SendAsync("DOMDebugger.getEventListeners", t.RemoteObject.ObjectId);
但似乎我做错了什么,我没有找到任何关于此的明确文档。
我已经找到了解决方案,这里是给可能感兴趣的人的:
首先,我们应该像这样创建一个 CDPSession
:
var client = await page.Target.CreateCDPSessionAsync();
然后我们应该评估我们的脚本以获得一个元素:
var body = await client.SendAsync("Runtime.evaluate", new { expression = "document.getElementsByTagName('input')[0]" });
最后,我们应该使用 DOMDebugger
和元素的 objectId
来得到它的 event listeners
:
var result = await client.SendAsync("DOMDebugger.getEventListeners", new { objectId = body["result"]["objectId"] });