Deaimy 2022-11-19 10:43 采纳率: 100%
浏览 8
已结题

cefsharp网页模拟点击

Cefsharp执行模拟点击以下网页

img


网页代码如下

<a id="gvList_ctl02_HyperLink1" title="已学习 1.0%" class="courseware-list-reed" href="javascript:w("https://wcs1.shawcoder.xyz/ctrjd/play_pc/playverif_pc.html?t=aa6506fc78a048b9ade3e9c805863a0a&courseLabel=wlxy&courseId=7fa4d191fdbc47ea95db7b02f0336ca4");">继续学习</a>

为什么下面这段vb.net代码执行模拟点击该元素会不成功呢?

browser.EvaluateScriptAsPromiseAsync("document.getElementById('gvList_ctl02_HyperLink1').click();")

另外我试了 browser.GetBrowserHost().SendMouseClickEvent,代码如下,也同样不成功

Dim js As String =
"(function () {
    var bnt = document.getElementById('gvList_ctl02_HyperLink1');
    bnt.focus();
    var bntRect = bnt.getBoundingClientRect();
    return JSON.stringify({ x: bntRect.left, y: bntRect.top });
})();"
        Dim js_task As Task(Of JavascriptResponse) = browser.EvaluateScriptAsync(js, timeout:=Nothing)
        js_task.Wait() '阻塞等待task任务结束
        ‘///此处略过部分代码,获取到坐标px、py
        browser.GetBrowserHost().SendMouseClickEvent(px, py, MouseButtonType.Left, True, 1, CefEventFlags.None)
        browser.GetBrowserHost().SendMouseClickEvent(px, py, MouseButtonType.Left, False, 1, CefEventFlags.None)

求解答一下困惑,怎么模拟点击该元素,用C#或vb.net都可以

  • 写回答

4条回答 默认 最新

  • _长银_ 2022-11-20 07:46
    关注

    从代码来看,通过坐标和通过id触发点击事件都失败了,是否有iframe嵌套的情况呢?
    另一种思路:链接中调用了w()方法,可以考虑看看w()方法中的内容,直接通过js调用,绕开点击事件。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 已采纳回答 11月25日
  • 创建了问题 11月19日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。