发表回复 
IE操作教程
2016-02-29, 23 : 16 (这个帖子最后修改于: 2016-02-29 23 : 20 by xue_zhe.)
IE操作教程
作者:xue_zhe(king)

浏览器对象未存在
代码: (全选)
pwb := ComObjCreate("InternetExplorer.Application")   ;创建一个InternetExplorer.Application对象

pwb.Visible := 1    ;设置未可见,若为0则虽未可见,但在进程管理器里可以观察到创建了iexplore.exe的进程

pwb.Navigate("https://passport.baidu.com/?login&tpl=mn") ;加载网页https://passport.baidu.com/?login&tpl=mn

while pwb.ReadyState <> 4  or pwb.busy                       ;等待网页加载完毕

{}

sleep,10


浏览器对象已经存在

代码: (全选)
例子:
IE选项卡里打开www.baidu.com,在搜索栏里输入test,以下代码成功获取test字符

ComObjError(false) ;关闭对象错误提示
ie:=IEGetFromUrl("https://www.baidu.com")  ;获取包含https://www.baidu.com网页的一个选项卡对象ie
text:=ie.document.getElementById("kw").value   ;通过ie.doucument对当前网页进行操作
MsgBox %text%

;获取包含指定url的IE选项卡对象,从而成功操作对应的doucment对象
IEGetFromUrl(url){
for window in ComObjCreate("Shell.Application").Windows
{
  if InStr(window.document.url,url) && InStr( window.FullName, "iexplore.exe" )
   Return window
}
}

;获取包含指定标题的IE选项卡对象
IEGetFromTabName(IETabName){
For window in ComObjCreate( "Shell.Application" ).Windows
{
        If ( window.LocationName = IETabName ) && InStr( window.FullName, "iexplore.exe" )
        Return window
  }

后续说明:
代码: (全选)
获取window对象后,参考javascript就很容易对IEDom进行操作。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 2用户表示感谢xue_zhe
2016-03-01, 08 : 50
RE: IE操作教程
markkkk
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-03-01, 23 : 01
RE: IE操作教程
求 javascript 教程...
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-03-02, 13 : 19 (这个帖子最后修改于: 2016-03-13 22 : 24 by robertL.)
RE: IE操作教程
IEGetFromTabName的判断改为包含可能更实用些

代码: (全选)
;获取包含指定标题的IE选项卡对象
IEGetFromTabName(IETabName){
For window in ComObjCreate( "Shell.Application" ).Windows
{
        If InStr( window.LocationName, IETabName ) && InStr( window.FullName, "iexplore.exe" )  
        Return window
  }
}
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-03-03, 02 : 10 (这个帖子最后修改于: 2016-03-13 22 : 24 by robertL.)
RE: IE操作教程
问题是,我想要激活指定 URL 的标签,或者激活指定 标签名 的标签,该怎么弄

上面几个都只能返回对象,而我除了返回对象之外,还要将此对象(标签)激活

该怎么弄

代码: (全选)
IEActivate_tabname(name,LoopRange:=10){
;为了方式 name 标签不存在,又不想构造标签名列表,偷懒用循环次数来简化了
    WinActivate ahk_class IEFrame    ;
    sleep 1000            ;我在想这两句是不是省略掉
    loop %LoopRange%
    {
        WinActivate ahk_class IEFrame
        sleep 1000
        
        WinGetTitle,a_Name,A ;这里可以写成后台式的,不过无所谓了
        a:=a_name
        a:=SL(a,"- Windows Internet Explorer")
        a:=RTrim(a," `t-")
        a_name:=a
        
        a:=Name
        a:=SL(a,"- Windows Internet Explorer")
        a:=RTrim(a," `t-")
        name:=a
        
        if (a_name=Name)
        {
            MsgBox,,,,0.5 ;此行可注释掉
            return
        }
        else
            send ^{tab} ;切换下一个标签,可以 ^+{tab} 逆序切换
        
        sleep 1000 ;循环间的缓冲
    }
    ;其实还应该写个返回值得,如果没找到,就返回 NotFound
}
IEActivate_URL(url,LoopRange:=10){
;为了方式 name 标签不存在,又不想构造标签名列表,偷懒用循环次数来简化了
    WinActivate ahk_class IEFrame
    sleep 1000
    loop %LoopRange%
    {
        WinActivate ahk_class IEFrame
        sleep 1000
        
        ControlGetText,a_URL,edit1,A ;这里可以写成后台式的,不过无所谓了
        a_URL:=RTrim(a_URL,"/")
        URL:=RTrim(URL,"/")
        
        if (a_URL=URL)
        {
            MsgBox,,,,0.5 ;此行可注释掉
            return
        }
        else
            send ^{tab} ;切换下一个标签,可以 ^+{tab} 逆序切换
        
        sleep 1000 ;循环间的缓冲
    }
    ;其实还应该写个返回值得,如果没找到,就返回 NotFound
}
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-03-03, 03 : 18
RE: IE操作教程
这里又找到一个例子 但是看不懂

http://blog.csdn.net/liuyukuan/article/details/42823645
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-03-11, 12 : 39
RE: IE操作教程
(2016-03-03 03 : 18)名字很好起 提到:  这里又找到一个例子 但是看不懂

http://blog.csdn.net/liuyukuan/article/details/42823645

01.;上面的链接脚本功能:就是通过标题来激活IE指定的tab
02./*
03.测试方法:
04.打开IE 依次访问
05.http://www.baidu.com/
06.http://cn.bing.com/
07.百度处于不激活状态、必应处于激活状态。
08.*/

简单,再简单一点儿
博客 http://blog.csdn.net/liuyukuan
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢hitman
2016-03-20, 19 : 12
RE: IE操作教程
今天翻看以前的笔记,才发现原来就测试过,还记录了一个问题,连接到已有的ie时,有时需要先将焦点置于网页输入框中(至少一次)。不知道是不是个别现象。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-04-27, 17 : 00
RE: IE操作教程
AutoHotkey写的登录web能保存session吗?

简单,再简单一点儿
博客 http://blog.csdn.net/liuyukuan
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-09-03, 22 : 54
RE: IE操作教程
假设有一个很长的网页,必须滚动屏幕才能看到下面的一个按钮,而这个按钮的坐标又不固定(因为前面的内容长度每次打开时可能是变化的),但是按钮上的文本是固定的,请问如​何才能自动找到这个按钮并模拟一次鼠标单击的动作?谢谢!
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-11-14, 08 : 39
RE: IE操作教程
同问,应该是该按钮的index,和id值还有位置都不是固定的,但是innertext是固定的,不知道这个怎么点击
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2017-03-07, 17 : 28
RE: IE操作教程
学习了。字数补丁
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2017-03-09, 05 : 25 (这个帖子最后修改于: 2017-03-09 11 : 47 by feiyue.)
RE: IE操作教程
参考下一页的js脚本:
代码: (全选)
<script language="JavaScript">
var Re=new RegExp("[下后]{1} *一? *[页頁章篇翻]","i"); var la=document.getElementsByTagName("A"); try{ for (var i=0;i<la.length;i++){if (Re.test(la[i].innerHTML)){if (la[i].href.substr(0,11).toLowerCase()=="javascript:") la[i].click(); else document.location.href=la[i].href; break;}}} catch (e){}
</script>
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合