找回密码
 加入
搜索
查看: 5011|回复: 12

[GUI管理] IE操作的问题,刚接触IE操作 是在盲目!

  [复制链接]
发表于 2010-2-27 13:03:49 | 显示全部楼层 |阅读模式
本帖最后由 nmgwddj 于 2010-2-27 13:06 编辑



如上图 如何打开红色圈里的网站

还有就是程序开始运行的时候 如何锁定网页中的输入框 输入相关数据

我现在是锁定程序窗口 然后SEND 不知道网页中输入框的控件是什么 该如何操作!

是在不知道怎么下手 不想用模拟鼠标点击啊
; *******************************************************
; Example 1 - Trap COM errors so that 'Back' and 'Forward'
;                                outside of history bounds does not abort script
;                                (expect COM errors to be sent to the console)
; *******************************************************
;
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

_IEErrorHandlerRegister()

$oIE = _IECreateEmbedded()
GUICreate("测试", 640, 580, _
                (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
                $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
$GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 600, 360)
;$GUI_Button_Back = GUICtrlCreateButton("开始", 10, 420, 100, 30)
;$GUI_Button_Forward = GUICtrlCreateButton("测试", 120, 420, 100, 30)
$GUI_Button_Home = GUICtrlCreateButton("返回主页", 230, 420, 100, 30)
;$GUI_Button_Stop = GUICtrlCreateButton("停止", 340, 420, 100, 30)

GUISetState() ;Show GUI

_IENavigate($oIE, "http://www.woai310.com/index.htm?u=3496/")
; Waiting for user to close the window
While 1
        $msg = GUIGetMsg()
        Select
                Case $msg = $GUI_EVENT_CLOSE
                        ExitLoop
                Case $msg = $GUI_Button_Home
                        _IENavigate($oIE, "http://www.woai310.com/index.htm?u=3496/")
                        xie()
                ;Case $msg = $GUI_Button_Back
                        ;_IEAction($oIE, "back")
                ;Case $msg = $GUI_Button_Forward
                        ;_IEAction($oIE, "forward")
                ;Case $msg = $GUI_Button_Stop
                        ;_IEAction($oIE, "stop")
        EndSelect
WEnd

GUIDelete()

Exit
Func xie()
        $Val = Random(1, 500, 1)
        $kahao = FileReadLine("keywords.txt", $Val)
        WinWait("测试")
        WinActivate("测试")
        Send($kahao)
        Send("{enter}")
        Sleep(10000)
EndFunc   ;==>xie

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2010-2-27 13:09:33 | 显示全部楼层
看了好多自动登录网页的例子。一点没看明白 特别是例子这句 句子中“f”和“q”
是怎么获取到的!
#include <IE.au3>
$oIE = _IECreate ("http://www.google.com")
$oForm = _IEFormGetObjByName ($oIE, "f")
$oQuery = _IEFormElementGetObjByName ($oForm, "q")
_IEFormElementSetValue ($oQuery, "AutoIt IE.au3")
_IEFormSubmit ($oForm)
发表于 2010-2-27 14:38:31 | 显示全部楼层
本帖最后由 lynfr8 于 2010-2-27 14:49 编辑

之前写的一个东西
比较简单
参考一下
或许能帮到楼主你

http://hi.baidu.com/autoit3cn/bl ... fdac006b63e597.html
 楼主| 发表于 2010-2-27 15:17:05 | 显示全部楼层
3楼的朋友谢谢你。虽然代码没有达到我的目的 但是知道了_IELoadWait函数 3Q
 楼主| 发表于 2010-2-27 21:45:13 | 显示全部楼层
有没有人曾告诉你们 我很爱你们 ~~~~有没有人曾告诉我一个函数~~~~~~~~~
发表于 2010-2-27 21:55:16 | 显示全部楼层

IE_Udf汉化帮助,自己看吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2010-2-27 22:03:57 | 显示全部楼层
楼上的没明白我的意思,
网页已经能打开了。是一个搜索页面,我想每次搜索完了都点第一条数据 如何做到
 楼主| 发表于 2010-2-27 23:08:53 | 显示全部楼层
如果能截取或者获取到红色圈里的文本  问题也解决了
 楼主| 发表于 2010-2-28 10:43:32 | 显示全部楼层
我晕 一直没有人回答
 楼主| 发表于 2010-2-28 18:12:34 | 显示全部楼层
大哥大姐们 帮帮忙 研究一天了
发表于 2010-3-6 11:54:52 | 显示全部楼层
如果是固定网址,直接打开网址即可,如果是固定位置,那如何保证每次搜索的第一个位置都是你想要的呢?
 楼主| 发表于 2010-3-6 22:44:35 | 显示全部楼层
所以这个很难
发表于 2010-3-7 17:21:20 | 显示全部楼层
1楼提到的问题很难解决..至少我是这么认为 而且我也不会
2楼提到的问题就比较容易
$oIE = _IECreate("http://www.google.com")成功后返回InternetExplorer.Application对象的对象变量给$oIE。
然后用_IEFormGetCollection函数,$oForms = _IEFormGetCollection($oIE)返回$oIE的表单对象的对象变量,同时会设置一个宏@EXTENDED=表单数量,这里就得到了表单的个数。
然后用FOR语句列举出$oForms的所有元素
For $Form In $oForms
        MsgBox(0, "表单名称", $oForm.name)
Next
这里就得到了表单名称也就是你提到的f
然后$oQuerys = _IEFormElementGetCollection ($Form) 返回表单内控件对象的对象变量,同时设置@EXTENDED = 控件数量。
然后也用FOR语句列举出$oQuerys的所有元素 方法和前面列举出$oForms的所有元素一样
#include <IE.au3>
$oIE = _IECreate("http://www.google.com")
$oForms = _IEFormGetCollection($oIE)
MsgBox(0, "表单信息", "这个页面上共有" & @extended & "个表单")
For $Form In $oForms
        MsgBox(0, "表单名称", $Form.name)
        $oQuerys = _IEFormElementGetCollection ($Form)
        MsgBox(0, "表单控件", "这个表单上共有" & @extended & "个控件")
        For $Query In $oQuerys
                MsgBox(0, "表单控件信息", "名称:"&$Query.name & " 类型:"&$Query.type)
        Next
Next
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 00:45 , Processed in 0.084682 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表