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日

悬赏问题

  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本