Autoit3操作网页实现自动化

Autoit3 本身有内置的用户自定义函数IE.au3,但是有个问题是好像目前只能用IE8版本,现在IE8已经很少人用了,在我机器上已经是IE11了,我在做测试的时候没有用。

找了很多资料发现有个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‘,发现在少了一个"\",导致读取路径错误,不知道为什么会有这样的错误,难道老外写的这个只能在英文操作系统上面使用。

5. 总结一下,上面的几个问题折腾了两三个小时,刚接触AutoIt3,国内资料比较少,很奇怪很少找到FF.au3相关的问题,难道国内的程序猿都一直忍受AutoIt3只能用IE8吗,还是有其他更好的解决方案。

时间: 2024-11-06 18:53:43

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

webBrowser中操作网页元素全攻略

webBrowser中操作网页元素全攻略 2012-12-20 14:21 188人阅读 评论(0) 收藏 举报 1.获取非input控件的值: webBrowser1.Document.All["控件ID"].InnerText; 或webBrowser1.Document.GetElementById("控件ID").InnerText; 或webBrowser1.Document.GetElementById("控件ID").GetAttr

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

VBS脚本和HTML DOM自动操作网页 2016-06-16 10:24 1068人阅读 评论(0) 收藏 举报  分类: Windows(42)  版权声明:本文为博主原创文章,未经博主允许不得转载. 本来是想通过JS实现对其他页面的控制,发现跨域无法获取页面DOM来操作.接着考虑bat,发现也实现不了,于是想到vbs.vbs还是很强大啊,病毒之类很多都是vbs脚本啊.vbs打开浏览器,然后通过dom来操作页面,可以实现自动填写内容和按钮点击等.摸索了几个常用的,代码如下: 1.网页文本框赋

VBS脚本操作网页元素

=================打开百度,点击百度按钮==================== Dim btn,ieSet ie = WScript.CreateObject("InternetExplorer.Application")ie.Visible = true '若为false,则不显示浏览器ie.navigate "www.baidu.com" DoWscript.Sleep 200Loop Until ie.readyState = 4 '等页面载

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

引言 想给自己之前写的网页小说爬虫程序更新换代,之前一直是用winform的形式写的程序,因此这一次更新打算把UI换成WPF(因为听说WPF很漂亮),顺便也以此引入WPF的学习. 那么作为网页爬虫程序,最重要的就是html源码的获取了,通常的获取方式有几种:HttpWebRequest.WebRequest.WebClient.WebBrowser等.由于我这里写的爬虫软件针对的网站需要先登录才能看到小说内容,而我一次爬取的内容不多都是短篇小说,因此不需要考虑到爬取的速度,因此自然是打算使用We

Python操作Execl 实现自动化填表

任务简述: 表1是一个简单的数据表,共有110行,25列.第1行是表头,例如“负责人”.“事项”.“期限”等. 第2行——第110行是对应的数据,如“张三”.“搬砖头”.“3天”. 想要做的表(表2)是110个表格(就像个人简历一样,放在了一个excel文件中),每个表格共9行,都有固定的格式,如“姓名”“事项”“期限”等,数据与表1一样,但格式与顺序不同,是按个人分类的. 目前的任务就是从表1复制出相应的数据,填到表2里面.如果手工复制粘贴,共计110x25=2750个数据,简直累哭. 所以使

通过xml操作网页

通过xml的设置可以进行页面的设置,以及网页之间的跳转. 此例为把xml中的数据读出,然后绑定到控件上,可以根据读出内容的URL进行页面之间的跳转. 1,首先需要进行xml的编写.例如: Menu.xml ---> <?xml version="1.0" encoding="utf-8" ?> <Menu>     <!--<TopMenu>     <MenuItem Name="ListAirLin

WPF使用Webbrowser操作网页的主要代码

1,引用mshtml.dll using mshtml; 2,获取元素属性值 IHTMLDocument2 doc2=(IHTMLDocument)webbrowser1.Document; IHTMLElement img=(IHTMLElement)doc2.all.item("regimg",0); string imgUrl=(string)img.getAttribute("src"); 3,取表单控件 IHTMLElement loginName=(IH

selenium和sikuliX配合使用操作网页

sikuli的官网地址:http://www.sikuli.org 首先下载sikuliX的jar包:https://launchpad.net/sikuli/sikulix/1.1.0 java-doc:http://nightly.sikuli.de/docs/index.html 官网用法介绍:http://www.sikulix.com/quickstart.html 需求: 1.打开百度地图 2.切换城市到郑州 3.使用测距工具 4.测量绿城公园--郑州植物园的距离 前序工作: 1.导

Selenium+Python+Eclipse网页自动化集成环境配置(附简单的测试程序)

最近公司在给我们培训,主要是网页自动化测试的,现在的工作每天都是测APP,刚刚入门,不过,当我看了别人写的bug之后,就觉得不会觉得能够发现bug多么多么的厉害了. 前两周的时间一直在搭建自动化测试的环境,由于白天上班没有时间做练习,只能下班之后才有时间自己学习一下,苦逼啊.每天都是9点多才从公司回宿舍,但说实在的,这样的日子确实过得很充实,不管怎样,这么好的一个工作环境一定要好好珍惜,学多点东西,挣多点钱回家孝敬一下老爸,他自己一个人扛起我们整个家庭,也确实不容易的.好了,废话不多说了,直接进