先上最初开源作者链接黑猫よ__:https://bbs.125.la/forum.php?mod=viewthread&tid=14062322&highlight=Chrome
抛砖引玉,也来分享一下开发经验,Chrome谷歌浏览器外部填表模块的二次开发封装,用卓越的"开源"精神思想,在原作者模块源码
中插入了一个程序集。然后实现了我的异想天开。。。。
二次开发未改动原作者代码,只是另外封装了一下,使用更加便捷而已,另外添加了以下功能:
1、跨框架填表(填表标配)
2、自定义标签ID(我觉得谷歌返回的ID串太抽象了,自定义多好。。)
3、可视化元素定位(表单页很长?想实时定位元素位置进行模拟操作?想自动滚动窗口到元素的位置?)
4、可视化模拟曲线(渐开线、贝塞尔曲线)水平有限,模拟OK。。
5、没了,本想添加Ajax Hook 但是页面一跳转,又要重新HOOK,JS实现的感觉鸡肋。用套框架法可以解决,但是麻烦(懒)
注意的部分:
二次封装的模块,结束会关闭所有谷歌浏览器进程,介意的自己修改一下。
创建谷歌浏览器时,要求输入谷歌安装路径。如果点“打开浏览器”按钮打不开,自己双击该按钮,在源码中修改路径为,你电脑上谷歌浏览器安装的路径。
源码是模块源码,但调试环境时会弹出调试窗口,它可以直接编译成模块使用
包含运行库, VC++ Runtime Package 文件夹,如果出现XXX找不到之类的错误,将该文件夹里的DLL文件全部放到源码目录
包含谷歌浏览器开发版 chromium-sync.exe 如果安装了谷歌浏览器则忽略,没有安装的安装这个咯
模块源码:IChrome Link.e 基本上是原作者原封不动的附件状态过来的。
我的调试代码写在模块中,原作者的调试代码原封不动为(Chrome 远程调试工具.e)。如果想用未二次开发的部分,请参考原作者调试代码。
发布携带:
DATA----目录
IChromeLink.dll
Komari32.dll
VC++ Runtime Package 目录中所有DLL文件拷贝到程序运行目录。(运行库,如果安装了运行库则忽略,但是建议一同发布,免得出错更麻烦)
关于跨框架问题:目前跨框架是通过JS枚举 ifrom 标签实现,但现在有网页仍用 from 标签。内置跨框架只枚举了主页面以下的子框架,如果是子框架中的框架则不支持,没有进行该枚举。这个可以自己使用 执行JS脚本实现