如何使用PlaywrightSharp设置innerHTML?代码执行报错求助
问题修复方案
核心错误:
getElementById参数格式错误document.getElementById('#key')写法有误,getElementById接收的是元素的纯id字符串,不需要添加CSS选择器的#前缀,正确写法应为document.getElementById('key')。这个错误会直接导致找不到目标元素,进而引发设置innerHTML失败的报错。修正后的完整代码
using var playwright = await Playwright.CreateAsync(); await using var browser = await playwright.Firefox.LaunchAsync(); var page = await browser.NewPageAsync(); await page.GoToAsync(URL); // 修正id参数,去掉多余的# await page.EvaluateAsync("document.getElementById('key').innerHTML = 'value';"); await page.ClickAsync("#button"); await page.WaitForLoadStateAsync(LifecycleEvent.Networkidle);
- 额外优化建议
- 若目标元素是动态加载的,建议先等待元素出现再操作,避免找不到元素的报错:
await page.WaitForSelectorAsync("#key"); await page.EvaluateAsync("document.getElementById('key').innerHTML = 'value';"); - 可以直接使用Playwright内置API设置元素内容,比
Evaluate更简洁直观:// 针对普通元素设置innerHTML await page.SetInnerHTMLAsync("#key", "value");
- 若目标元素是动态加载的,建议先等待元素出现再操作,避免找不到元素的报错:
内容的提问来源于stack exchange,提问作者Imad
相关产品推荐
相关产品推荐

