如何使用CEFSharp和jQuery触发可点击DIV的点击事件?
问题原因分析
- 首次尝试错误:
jQuery.on()是事件绑定方法,不是触发事件的API,方法使用错误自然无法触发点击。 - 第二次尝试的两个错误点:
- 选择器错误:
ExampleDiv是元素ID,不是类名,不能用.ExampleDiv类选择器,需要改用#ExampleDivID选择器 - VB字符串转义冲突:VB字符串中直接混用单双引号没有做转义处理,导致拼接后输出的JS代码语法断裂,触发
missing ) after argument list报错
- 选择器错误:
正确实现方案
写法1:原生JS触发(不依赖页面jQuery,兼容性更好)
VB代码如下:
Browser.ExecuteScriptAsync("document.querySelector('#ExampleDiv div[data-example=""12345""]').click();")
注意VB字符串中的双引号需要用两个双引号转义,上述代码拼接后输出的合法JS为:document.querySelector('#ExampleDiv div[data-example="12345"]').click();
写法2:jQuery触发(确认页面已加载jQuery时使用)
VB代码如下:
Browser.ExecuteScriptAsync("$('#ExampleDiv div[data-example=""12345""]').click();")
同样遵循VB双引号转义规则即可避免语法错误。
可选校验逻辑
如果执行后仍无响应,可以先在浏览器控制台直接运行对应的JS代码确认效果,排除元素未加载完成、元素被遮挡等其他问题,如果是元素加载延迟的情况,可以增加简单的延迟重试逻辑,或者监听元素加载完成后再执行点击操作。
内容的提问来源于stack exchange,提问作者BHuelse
相关产品推荐
相关产品推荐

