如何使用Puppeteer-sharp获取已点击元素的innerText?
获取点击元素的innerText(Playwright C#)
你代码里的GetInnerTextFromElement()并非Playwright官方提供的方法,无法直接使用。以下是两种正确的实现方式:
方法一:使用内置的InnerTextAsync()(推荐)
Playwright的IElementHandle自带InnerTextAsync()方法,可直接获取元素的innerText,修改你的代码如下:
string xplast = "//button[@id='test']"; IElementHandle last = await ((IPage)page).WaitForXPathAsync(xplast); await last.FocusAsync(); await last.ClickAsync(); // 直接调用内置方法获取文本 string innertext = await last.InnerTextAsync();
方法二:通过EvaluateAsync()执行JS获取
如果需要更灵活的文本处理逻辑,可以通过执行JavaScript来获取:
string xplast = "//button[@id='test']"; IElementHandle last = await ((IPage)page).WaitForXPathAsync(xplast); await last.FocusAsync(); await last.ClickAsync(); // 执行JS脚本获取元素innerText string innertext = await last.EvaluateAsync<string>("el => el.innerText");
注意事项
- 确保点击后目标元素仍存在于DOM中,若点击后元素被替换或移除,需重新定位元素再获取文本。
InnerTextAsync()返回的内容包含元素及其所有子元素的文本,和浏览器原生element.innerText行为完全一致。
内容的提问来源于stack exchange,提问作者PeterSchwennesen
相关产品推荐
相关产品推荐

