AHK 操控 Chromium 内核浏览器入门教程 —— Chrome.ahk-plus 的简介与使用

Chrome.ahk-plus 是一个操控谷歌 Chrome、微软 Edge、国产百分浏览器等基于 Chromium 内核的浏览器的库。

本文是一篇使用 Chrome.ahk-plus 库的入门教程。


有鉴于,很多人想用 AHK 操控 Chrome,却总是失败或难以入门。

所以特别出了这样一篇详细的教程。

主要想告诉大家2件事:

  • AHK 操控 Chrome 也非常简单。
  • 希望大家也出点教程或者多分享自己的各种心得,这样的好处是你能更熟悉自己学会的一切,同时还能帮助更多的人并从他们那里收获新东西。请注意,教程或者心得真的不需要是高深的才能发。恰恰相反,只要认真写,越是简单的入门的越是能帮助更多人。同时要相信,就算你是小白,也总有比你更小白的小白。而小白弄懂一件事情后,分享出来的,可能远比那些早就熟悉一切的大佬说的更能让初学者理解。

好了,废话不多说,直接看效果。

AHK 操控 Chromium 内核浏览器入门教程 —— Chrome.ahk-plus 的简介与使用


1. 打开 Chrome 。

ChromeInst := new Chrome("ChromeProfile",,, Chrome路径)  ; 启动 Chrome

2. 获取标签并打开百度。

标签 := ChromeInst.GetPage()                                         ; 连接标签
标签.Call("Page.navigate", {"url": "https://www.baidu.com/"})        ; 打开百度
标签.WaitForLoad()                                                   ; 等待网页加载完成

3. 在搜索框中填入内容并搜索。

搜索内容:="我爱ahk 我爱KMCounter"
标签.Evaluate("document.getElementById('kw').value='" 搜索内容 "';")      ; 搜索框中输入文字
标签.Evaluate("document.getElementById('su').click();")                  ; 点击搜索按钮
标签.WaitForLoad()                                                       ; 等待网页加载完成

4. 显示搜索结果。

第二条搜索结果:="document.getElementById('2').innerText;"
MsgBox, % 标签.Evaluate(第二条搜索结果).value                            ; 打印第二条搜索结果

5. 让 Chrome 弹出提示框。

弹窗内容:="Hello World!nn看到了吧 ahk 操控 Chrome 也是非常简单的"
标签.Evaluate("alert('" 弹窗内容 "');")                                  ; 让 Chrome 弹一个提示框出来

6. 关闭 Chrome 。

标签.Call("Browser.close")       ; 关闭浏览器(所有页面和标签)
标签.Disconnect()                ; 断开连接
ExitApp
return

#Include Chrome.ahk

库及更多示例下载地址:

Chrome.ahk-plus

给TA捐赠
共{{data.count}}人
人已捐赠
其他教程

遍历数组返回索引,可用于遍历树形结构并返回所有分支路径

2021-3-16 0:06:03

其他教程

Gui新开窗口上按钮只能用g标签调用

2021-3-29 16:31:02

44 条回复 A文章作者 M管理员
  1. ☆阿让·晓刚

    如果当前已经打开了Chrome,请问ChromeInst.GetPage()能否连接其中指定的某个标签?

    • 空

      用 chrome 库打开的 chrome 应该可以。

    • ☆阿让·晓刚

      但不是ahk或者chrome 库打开的,就是正常点浏览器图标打开的

    • 火冷

      我也有这问题,
      1、强制所有Chrome打开都强制为debug模式,比较彻底和理想。
      2、Chrome是否有命令,关闭当前进程,用debug模式重新打开原有链接。
      这样当发现问题是,关闭后重新打开链接,也是能接受的。

    • 火冷

      大部分情况下是这样的,有些特殊情况: 1. 用了插件,可能会导致网页异常。 2. 纯粹用js,可能不太好操控网页,结合ahk会简单不少。 3. 插件在浏览器内,权限受限,也需要有ahk补充会更加开阔

    • ☆阿让·晓刚

      如果确实需要与当前已经打开的网页联系沟通,建议看下quicker软件,今年某个版本更新后增加了浏览器插件,可以实现脚本通过插件与浏览器传递消息,貌似挺不错(好像略有一点延迟)。如果你们能搞一个ahk版,那就完美了。

  2. LionAHK1

    赞,等下好好研究.

  3. sanmaodo

    链接失效了

    • 空

      链接正常。

  4. szdinosaur

    运行出错啊

    • 空

      出错要给出具体信息,不然没法知道你啥问题。就像去医院要说我哪里痛,不能只说我病了一样。

  5. lfer

    受益匪浅,感谢!

  6. 米粒

    这个好,解决我遇到的很多问题。?

  7. pster

    很好的入门小案例教程

  8. x020408

    好东西 。不过要是没有注意到包含chrome库,估计你也运行不行。

  9. liyn

    啥都要金币呢?

    • AHK中文社区

      哪来的金币?积分机制的话可以看看社区的白皮书!

  10. 孤独求败

    回头测试一下

  11. 火冷

    这个好东西,我也是最近才用上,真的相见恨晚。
    有两个想法,不知道有没有方法解决:
    1、有没有强制浏览器打开都是带DebugPort的方法
    2、发现有些网页滚动无效,需要鼠标点击下页面,按{Home}才能生效。是否可用Evaluate解决此问题
    window.scrollTo(0,0) 对有些页面也是无效。

    • 空

      1.一个比较好的办法是,把 x:chrome.exe 替换为你自己用 ahk 编译的一个 exe ,然后这个编译的 exe 再去调用 chrome.exe,调用的过程中,就能加各种参数了。
      2.chrome.ahk 中,有个 pageinst.call() 支持的参数的网址,里面有很多东西,其中就有让 chrome 自己点鼠标键盘的参数。

  12. 过去

    支持,学习一下

  13. 孤独求败

    感谢,研究一下怎么使用

  14. 一PFK

    感谢大佬,小白学习中

  15.   PiQ。

    感谢大佬,一直在想怎么输入变量,原来格式得这样写。

  16. dbgba
    dbgba给您打赏了¥2
  17. rastar

    感谢,研究一下怎么使用

  18. rastar

    受益匪浅,感谢!

  19. 1111333

    要学的还有很多

  20. jing2024

    学习学习

  21. Gaobang

    感谢太有用了

  22. 妙啊

    学习

  23. Uson

    学习一下

  24. tunghwa

    学习学习

  25. Lance
    Lance给作者打赏了¥2
  26. 旧城

    请教大佬,怎么获取一个页面接口的response信息,单纯的判断dom元素是否出现满足不了我的需求,我找了谷歌DevTools,里面有个Network.getResponseBody方法,但是它需要requestId这个参数,我现在拿不到requestId这个参数,大佬,求求了,这个问题卡我好久了

  27. 达芬奇

    太棒了,正好学些一下,谢谢大佬

  28. ruchid

    第二条搜索结果:=”document.getElementById(‘2’).innerText;”

    请问这个是直接获得网页的函数么?是要根据网页元素名来获取么?

个人中心
购物车
优惠劵
有新私信 私信列表
搜索