Delphi 10.4.1 EdgeBrowser 模拟操作网页方法

Delphi 10.4.1 EdgeBrowser 模拟操作网页方法

以往一直用TWebBrowser 或者 C++ Builder 中的TCcpWebBrowser来写网页模拟操作
这两个控件可以使用WebBrowser.OleObject.document、WebBrowser.Document As IHTMLDocument2来实现大部分的操作
发现这两者都是依赖于IE内核,虽然可以设定IE 11内核,但是今年微软公布11月底停止更新了
所以可以考虑使用微软推出的Edge浏览器

进入正题:

Delphi 10.4.1 新增的TEdgeBrowser控件
研究了一下发现该控件似乎不再支持像TWebBrowser那样使用IHTMLDocument2方法了
Google一下发现几乎没有资料可寻,在GW某个论坛看到说被其他方式代理了,翻了一下Edge类,在类中有这么一个方法:

    /// <summary>
    ///   Execute JavaScript code from the javascript parameter in the current top level document rendered in the
    ///   WebView, even if ScriptEnabled is False
    /// </summary>
    procedure ExecuteScript(const JavaScript: string);

对应回调事件

  当 ExecuteScript 执行完成后回调结果给 OnExecuteScript 
  /// <summary>
  ///   Event handler type for the OnExecuteScript event
  /// </summary>
  TExecuteScriptEvent = procedure (Sender: TCustomEdgeBrowser; AResult: HResult; const AResultObjectAsJson: string) of object;

OnExecuteScript 包含两个参数,AResult 返回状态,AResultObjectAsJson 返回数据
经过测试发现,AResultObjectAsJson 默认回调过来的数据如果不是Json而是字符串,那么该字符串会被加上双引号,如 “button click success”,AResultObjectAsJson 的返回值经过测试,好像只返回最后一次被赋值的变量或被修改过的元素值

方法:
下载WebView2的dll支持库放入程序目录下
链接:https://pan.baidu.com/s/1ASnrkr8v893egwSoCVNcjg
提取码:igjt

下载MicrosoftEdgeDev浏览器,安装好桌面会出现Microsoft Edge Dev图标
链接:https://pan.baidu.com/s/1OrGtyYpNdM1ph5qNyHFU1Q
提取码:acap

在这里插入图片描述


以上工作做好以后,即可进行开发了

1.界面拖入EdgeBrowser控件
2.在控件事件中双击OnExecuteScript创建一个回调事件
3. EdgeBrowser1.ExecuteScript(‘你的JavaScript脚本’);

假定我们打开的页面有这样一个按钮:


                
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值