Autoit3 本身有内置的用户自定义函数IE.au3,只限于IE浏览器,如果是Firefox浏览器需要另外自定义函数。

找了很多资料发现有个FF.au3的自定义函数,下载地址 http://www.autoitscript.com/forum/topic/95595-ffau3-v0601b-10/

这个是对Firefox浏览器的自定义函数库,这样就可以通过Firefox访问网页。

实现步骤和发现的问题:

1. 下载FF.au3,放在脚本同目录下,也可以放在AutoIt3安装目录下的,比如: C:\Program Files\AutoIt3\Include。

2. 在Firefox浏览器上需要安装一个插件 MozRepl,下载地址 https://addons.mozilla.org/en-US/firefox/addon/mozrepl/

点击直接下载,Firefox会提示安装,安装完了之后要打开,方法是:【工具】->【MozRepl】->【Start】,每次打开浏览器一定要start,否则不能通讯。

MozRepl 会打开一个端口,默认4242,这样AutoIt3脚本通过windows api 实现与Firefox浏览器通讯,操作浏览器实现自动化。

3.编写脚本,从在线文档上面copy一段代码,FF.au3在线文档地址 http://english.documentation.ff-au3.thorsten-willert.de/

从在线文档上面copy第一个demo运行

#include "FF.au3"
_FFStart("http://ff-au3-example.thorsten-willert.de/")

If _FFIsConnected() Then
    Sleep(2000)
    _FFAction("presentationmode", True)
    Sleep(2000)
    _FFOpenURL("http://www.baidu.com")
    Sleep(2000)
    _FFAction("back")
    _FFAction("presentationmode", False)
    Sleep(2000)
    _FFOpenURL("chrome:bookmarks")
    Sleep(2000)
    _FFAction("alert", "Bye bye ...")
    _FFQuit()
EndIf

发现报错:

! Au3check doesn't support input files encoded as UTF8 with BOM: D:\AutoIt\FF.au3
"D:\AutoIt\ftest.au3"(3,54) : error: _FFStart(): undefined function.

..........

这个问题是因为FF.au3这个文件的编码是UTF8 with BOM,这是官方推荐的编码格式,但是Au3check不知道为什么不支持,解决的办法是在文件头上面加上:

#AutoIt3Wrapper_Run_Au3Check=n 。

4. 加上上面那句好了,可以编译没有报错,可是不能正常工作,查看控制台信息,显示错误信息:

__FFStartProcess ==> General Error: Error reading registry entry for FireFox.
HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\*CurrentVersion*\Main\PathToExe
Error from RegRead: 1

.......

读注册表错误,查找FF.au3源码4329行 $sHKLM &= 'Mozilla\Mozilla Firefox',发现在少了一个"\",导致读取路径错误,不知道为什么会有这样的错误,难道老外写的这个只能在英文操作系统上面使用。

Autoit3操作网页实现自动化的更多相关文章

  1. webBrowser中操作网页元素全攻略

    原文 webBrowser中操作网页元素全攻略 1.获取非input控件的值: webBrowser1.Document.All["控件ID"].InnerText; 或webBr ...

  2. VBS脚本和HTML DOM自动操作网页

    VBS脚本和HTML DOM自动操作网页 2016-06-16 10:24 1068人阅读 评论(0) 收藏 举报  分类: Windows(42)  版权声明:本文为博主原创文章,未经博主允许不得转 ...

  3. Python实训day07pm【Selenium操作网页、爬取数据-下载歌曲】

    练习1-爬取歌曲列表 任务:通过两个案例,练习使用Selenium操作网页.爬取数据.使用无头模式,爬取网易云的内容. ''' 任务:通过两个案例,练习使用Selenium操作网页.爬取数据. 使用无 ...

  4. 用chrome console实现自动化操作网页

    因为chrome console只能访问当前页的上下文(以及chrome扩展的上下文),无法访问其他标签页面的上下文,所以局限性较大,仅适用于一些较简单的操作 经实践,可以在chrome的一个标签页的 ...

  5. 利用Surfingkeys和tampermonkey效率操作网页

    tampermonkey可以实现网页载入后自动进行某些操作,适合有规律的操作,实现完全自动化. 而Surfingkeys可以实现用各种按键实现各种功能,功能全部用JavaScript写,自定义性更强.

  6. .NET4.5 WFP中用WebBrowser获取/操作网页html代码

    引言 想给自己之前写的网页小说爬虫程序更新换代,之前一直是用winform的形式写的程序,因此这一次更新打算把UI换成WPF(因为听说WPF很漂亮),顺便也以此引入WPF的学习. 那么作为网页爬虫程序 ...

  7. 模拟操作网页 webBrowser

    C# 获取IFrame中body元素 (winform) 方法1. 找出iframe的b.html的src , 利用webbrowser去加载b.html HtmlElementCollection ...

  8. C# 操作网页标签

    1  元素的 显示与隐藏   C# HTML: <div Id="div1" runat="server" style="display:non ...

  9. Python操作Execl 实现自动化填表

    任务简述: 表1是一个简单的数据表,共有110行,25列.第1行是表头,例如“负责人”.“事项”.“期限”等. 第2行——第110行是对应的数据,如“张三”.“搬砖头”.“3天”. 想要做的表(表2) ...

随机推荐

  1. web开发之菜鸟的代码规范

    笔者菜鸟里最不会飞的那个,所以这些基础的习惯都没养成,正好抽时间特意做个笔记以方便自己规范代码, 有兴趣的大佬多多指点. 养成好的编码习惯收益良多, 总结下编码时应注意的细节<借鉴高程里代码约束 ...

  2. 锚接口(上)——hashchange api 和 $.uriAnchor

    概述 这是我在单页Web应用这本书上看到的方法,并深入的研究了一下,把结果记录在下面,供以后开发时参考,相信对其它人也有用. 说明一下,这个方法已经过时了,H5有更新的方法:history api,我 ...

  3. 从零搭建java后台管理系统(一)框架初步搭建

    框架搭建 一.初步设想,使用springboot,框架打算用到依赖 spring web,devTools,mysql,Aspect,Redis,Lombok,Freemark,Shiro,Rabbi ...

  4. kubernetes集群搭建(6):kubernetes基本使用演示

    以简单部署访问来演示kubernetes的基本使用 流程: 用户访问client应用,client应用中调用server应用,由于部署了多节点,client在访问server时应该配置server 暴 ...

  5. jmeter获取cookies信息(配置)

    jmeter发送请求后,响应信息里获取不到cookies(实际上会返回一个cookies),解决方法: 在jmeter.properties里找到CookieManager.save.cookies, ...

  6. speex与webrtc回声消除小结

    回声消除AEC包含:   延时估计对齐+线性自适应滤波器+NLP(双讲检测.处理)+舒适噪声CNG 一.speex aec 1.没有NLP 2.只考虑实时DSP系统,即是没有延时对齐等 3.自适应滤波 ...

  7. Intellij-配置JDK版本和编译版本

    (1) (2) (3) (4)

  8. 在Windows环境中安装Neo4j

    图形数据库(Graph Database)是NoSQL数据库家族中特殊的存在,用于存储丰富的关系数据,Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边( ...

  9. Apache Commons Beanutils 二 (动态Bean - DynaBeans)

    相关背景 上一篇介绍了PropertyUtils的用法,PropertyUtils主要是在不修改bean结构的前提下,动态访问bean的属性: 但是有时候,我们会经常希望能够在不定义一个Java类的前 ...

  10. google 身份验证器

    谷歌身份验证器原理 就是服务器与客户端算法相同