如何在Puppeteer Sharp中获取activeElement?
Puppeteer Sharp 获取并操作 activeElement 的可行方案
在Puppeteer Sharp中,你可以通过以下两种方式实现需求:
方法一:分步获取句柄并处理
先获取activeElement的句柄,再在C#端检查文本并执行点击:
// 获取当前激活元素的句柄 var activeElementHandle = await page.EvaluateHandleAsync("() => document.activeElement"); if (activeElementHandle != null) { // 获取激活元素的innerText var innerText = await activeElementHandle.EvaluateFunctionAsync<string>("el => el.innerText"); // 检查文本并点击 if (innerText.Contains("你要匹配的文本")) { await activeElementHandle.ClickAsync(); } }
方法二:在浏览器上下文内完成所有操作(更高效)
直接在页面的JavaScript上下文中完成检查和点击,减少C#与浏览器的通信次数:
await page.EvaluateAsync(@"() => { const activeEl = document.activeElement; // 避免activeElement为null的情况 if (activeEl && activeEl.innerText.includes('你要匹配的文本')) { activeEl.click(); } }");
两种方法都能实现你的需求,方法二更适合简单逻辑的场景,减少往返开销;方法一适合需要在C#端对元素做更多后续操作的场景。
内容的提问来源于stack exchange,提问作者almog
相关产品推荐
相关产品推荐

