有鉴于,很多人想用 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 库!
感谢分享, 开始学习
学习学习
学习一下
清楚明了 好帖
学习
感谢太有用了
学习学习
要学的还有很多
受益匪浅,感谢!
感谢,研究一下怎么使用
感谢大佬,一直在想怎么输入变量,原来格式得这样写。
感谢大佬,小白学习中
感谢,研究一下怎么使用
支持,学习一下
这个好东西,我也是最近才用上,真的相见恨晚。
有两个想法,不知道有没有方法解决:
1、有没有强制浏览器打开都是带DebugPort的方法
2、发现有些网页滚动无效,需要鼠标点击下页面,按{Home}才能生效。是否可用Evaluate解决此问题
window.scrollTo(0,0) 对有些页面也是无效。
1.一个比较好的办法是,把 x:chrome.exe 替换为你自己用 ahk 编译的一个 exe ,然后这个编译的 exe 再去调用 chrome.exe,调用的过程中,就能加各种参数了。
2.chrome.ahk 中,有个 pageinst.call() 支持的参数的网址,里面有很多东西,其中就有让 chrome 自己点鼠标键盘的参数。
赞,回去看看能不能vivaldi用
回头测试一下
支持远程支持楼主
啥都要金币呢?
哪来的金币?积分机制的话可以看看社区的白皮书!
好东西 。不过要是没有注意到包含chrome库,估计你也运行不行。
很好的入门小案例教程
这个好,解决我遇到的很多问题。👍
受益匪浅,感谢!
运行出错啊
出错要给出具体信息,不然没法知道你啥问题。就像去医院要说我哪里痛,不能只说我病了一样。
链接失效了
链接正常。
顶
赞,等下好好研究.
如果当前已经打开了Chrome,请问ChromeInst.GetPage()能否连接其中指定的某个标签?
用 chrome 库打开的 chrome 应该可以。
但不是ahk或者chrome 库打开的,就是正常点浏览器图标打开的
我也有这问题,
1、强制所有Chrome打开都强制为debug模式,比较彻底和理想。
2、Chrome是否有命令,关闭当前进程,用debug模式重新打开原有链接。
这样当发现问题是,关闭后重新打开链接,也是能接受的。
还是用插件方便些,Chrome就用vimium插件。
大部分情况下是这样的,有些特殊情况: 1. 用了插件,可能会导致网页异常。 2. 纯粹用js,可能不太好操控网页,结合ahk会简单不少。 3. 插件在浏览器内,权限受限,也需要有ahk补充会更加开阔
如果确实需要与当前已经打开的网页联系沟通,建议看下quicker软件,今年某个版本更新后增加了浏览器插件,可以实现脚本通过插件与浏览器传递消息,貌似挺不错(好像略有一点延迟)。如果你们能搞一个ahk版,那就完美了。