使用WebView2 ExecuteScriptAsync点击Send提交按钮无效果咨询
问题原因
getElementsByClassName方法需要传入元素的CSS类名,你错误传入了按钮onclick属性的执行代码,完全匹配不到任何元素getElementsByClassName返回的是DOM元素集合,不是单个元素,不能直接调用click()方法- 两个按钮类名完全相同,需要额外筛选属性匹配
value="Send"的目标按钮
最优解决方案
直接使用querySelector精准匹配目标元素,修改后的代码如下:
webView21.ExecuteScriptAsync("document.querySelector('input.button[value=\"Send\"]').click();");
可选替代方案
如果需要通过类名匹配后再筛选,可以使用以下写法:
webView21.ExecuteScriptAsync("Array.from(document.getElementsByClassName('button')).find(item => item.value === 'Send').click();");
注意事项
执行脚本前需要确保WebView2已经加载完目标页面,目标按钮已经完成渲染,否则会因为找不到元素触发脚本错误。
内容的提问来源于stack exchange,提问作者micheline
相关产品推荐
相关产品推荐

