Chrome.ahk-plus 是一个操控谷歌 Chrome、微软 Edge、国产百分浏览器等基于 Chromium 内核的浏览器的库。
本文是一篇使用 Chrome.ahk-plus 库的入门教程。
有鉴于,很多人想用 AHK 操控 Chrome,却总是失败或难以入门。
所以特别出了这样一篇详细的教程。
主要想告诉大家2件事:
- AHK 操控 Chrome 也非常简单。
- 希望大家也出点教程或者多分享自己的各种心得,这样的好处是你能更熟悉自己学会的一切,同时还能帮助更多的人并从他们那里收获新东西。请注意,教程或者心得真的不需要是高深的才能发。恰恰相反,只要认真写,越是简单的入门的越是能帮助更多人。同时要相信,就算你是小白,也总有比你更小白的小白。而小白弄懂一件事情后,分享出来的,可能远比那些早就熟悉一切的大佬说的更能让初学者理解。
好了,废话不多说,直接看效果。
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,请问ChromeInst.GetPage()能否连接其中指定的某个标签?
用 chrome 库打开的 chrome 应该可以。
但不是ahk或者chrome 库打开的,就是正常点浏览器图标打开的
我也有这问题,
1、强制所有Chrome打开都强制为debug模式,比较彻底和理想。
2、Chrome是否有命令,关闭当前进程,用debug模式重新打开原有链接。
这样当发现问题是,关闭后重新打开链接,也是能接受的。
还是用插件方便些,Chrome就用vimium插件。
大部分情况下是这样的,有些特殊情况: 1. 用了插件,可能会导致网页异常。 2. 纯粹用js,可能不太好操控网页,结合ahk会简单不少。 3. 插件在浏览器内,权限受限,也需要有ahk补充会更加开阔
如果确实需要与当前已经打开的网页联系沟通,建议看下quicker软件,今年某个版本更新后增加了浏览器插件,可以实现脚本通过插件与浏览器传递消息,貌似挺不错(好像略有一点延迟)。如果你们能搞一个ahk版,那就完美了。
赞,等下好好研究.
顶
链接失效了
链接正常。
运行出错啊
出错要给出具体信息,不然没法知道你啥问题。就像去医院要说我哪里痛,不能只说我病了一样。
受益匪浅,感谢!
这个好,解决我遇到的很多问题。?
很好的入门小案例教程
好东西 。不过要是没有注意到包含chrome库,估计你也运行不行。
啥都要金币呢?
哪来的金币?积分机制的话可以看看社区的白皮书!
支持远程支持楼主
回头测试一下
赞,回去看看能不能vivaldi用
这个好东西,我也是最近才用上,真的相见恨晚。
有两个想法,不知道有没有方法解决:
1、有没有强制浏览器打开都是带DebugPort的方法
2、发现有些网页滚动无效,需要鼠标点击下页面,按{Home}才能生效。是否可用Evaluate解决此问题
window.scrollTo(0,0) 对有些页面也是无效。
1.一个比较好的办法是,把 x:chrome.exe 替换为你自己用 ahk 编译的一个 exe ,然后这个编译的 exe 再去调用 chrome.exe,调用的过程中,就能加各种参数了。
2.chrome.ahk 中,有个 pageinst.call() 支持的参数的网址,里面有很多东西,其中就有让 chrome 自己点鼠标键盘的参数。
支持,学习一下
感谢,研究一下怎么使用
感谢大佬,小白学习中
感谢大佬,一直在想怎么输入变量,原来格式得这样写。
感谢,研究一下怎么使用
受益匪浅,感谢!
要学的还有很多
学习学习
感谢太有用了
学习
清楚明了 好帖
学习一下
学习学习
感谢分享, 开始学习
感谢分享,学习一下
请教大佬,怎么获取一个页面接口的response信息,单纯的判断dom元素是否出现满足不了我的需求,我找了谷歌DevTools,里面有个Network.getResponseBody方法,但是它需要requestId这个参数,我现在拿不到requestId这个参数,大佬,求求了,这个问题卡我好久了
太棒了,正好学些一下,谢谢大佬
第二条搜索结果:=”document.getElementById(‘2’).innerText;”
请问这个是直接获得网页的函数么?是要根据网页元素名来获取么?