找回密码
 加入
搜索
查看: 6470|回复: 14

[IE类操作] 关于网页点击的讨论。[已解决]

 火.. [复制链接]
发表于 2012-2-20 20:00:43 | 显示全部楼层 |阅读模式
本帖最后由 itljl 于 2012-2-26 13:12 编辑

#include<IE.au3>
$oIE = _IECreate("http://www.sogou.com/",0,1,1,1 )
_IELoadWait ($oIE)
$Input = _IEGetObjById ($oIE, "query")
    If IsObj($Input) Then $Input.value = "中国人"
$submit =  _IEGetObjByName ($oIE, "stb")
    If IsObj($submit) Then $submit.click

对于这个搜索按钮,有NAME stb
而对于http://2345.com/ 这个"搜索"按钮,没有ID,没有NAME,大家说说能怎么点击呢?

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

发表于 2012-2-20 20:40:06 | 显示全部楼层
直接提交表单就可以,多看看帮助!!!!!!!!!!!
#include <IE.au3>
 
$oIE =_IECreate("http://2345.com",0,1,1,1 )
_IELoadWait($oIE)
$o_form = _IEFormGetObjByName($oIE, "bdfm") ;找到表单
$UserName = _IEGetObjById ($oIE, "word")
$UserName.value = "搜索内容"
_IEFormSubmit($o_form);提交表单
 楼主| 发表于 2012-2-20 21:41:29 | 显示全部楼层
多谢楼上的朋友,我开始也试过这种办法,只是不完美,我想知道别的办法。
如正常的点击是不被弹窗阻止的,这种提交这会被弹窗拦截给阻止了。
发表于 2012-2-20 22:38:12 | 显示全部楼层
本帖最后由 papapa314 于 2012-2-20 22:40 编辑

回复 3# itljl


抱歉,这种方法也被弹窗拦截了

#include<IE.au3>

$oIE=_IECreate("http://2345.com/",0,1,1)

$tags=_IETagNameGetCollection($oIE,"INPUT")

For $tag In $tags
        If $tag.className=="sbutton" Then
                $tag.value="ddd"
                $tag.fireevent("onclick")
                ;$tag.fireevent("onkeypress")
                ;$tag.fireevent("onkeyup")
                ExitLoop
        EndIf
Next

试着用controlclick或者内嵌ie窗口吧。如若还不行,只能改网页的源码了,让按钮按下后在当前页打开新网页
 楼主| 发表于 2012-2-20 23:25:45 | 显示全部楼层
回复 4# papapa314

谢谢,可能这些网页是估计这样写的不让点击的。
发表于 2012-2-20 23:56:42 | 显示全部楼层
回复 5# itljl

这样行不行?

*因为输入了内容焦点就是搜索按钮,所以直接给IE发送Enter就可以打开了.
#include <IE.au3>

$oIE =_IECreate("http://2345.com",0,1,1,1 )
_IELoadWait($oIE)
$o_form = _IEFormGetObjByName($oIE, "bdfm") ;找到表单
$UserName = _IEGetObjById ($oIE, "search1")
$UserName.value = "搜索内容"
ControlSend("[CLASS:IEFrame]", "", "Internet Explorer_Server1","{ENTER}")
发表于 2012-2-21 09:24:01 | 显示全部楼层
用这种方法可以获取到按钮,但是点击用.click和_IEAction都没有达到点击的效果,求解
#include <IE.au3>
$oIE = _IECreate("http://2345.com/", 0, 1, 1, 0)
$oForm = _IEFormGetObjByName($oIE,"bdfm")

$search = _IEGetObjById($oIE,"search1")
If IsObj($search) Then
        _IEFormElementSetValue($search,"abc")
EndIf

$btn = _IEFormElementGetCollection($oForm,3)
If IsObj($btn) Then
        ;_IEAction($btn,"click")
        $btn.click
EndIf
发表于 2012-2-21 14:48:40 | 显示全部楼层
另一种方法.
#include <IE.au3>

$oIE = _IECreate("http://2345.com", 0, 1, 1, 1)
_IELoadWait($oIE)
;~ WinSetState("[CLASS:IEFrame]", "", @SW_MAXIMIZE); 窗口最大化
$UserName = _IEGetObjById($oIE, "search1")
$UserName.value = "搜索内容"

$mpos = MouseGetPos()
$pos = WinGetPos("[CLASS:IEFrame]")

If WinGetState("[CLASS:IEFrame]") = 47 Then
        MouseClick("left", $pos[0] + 700, $pos[1] + 278, 1, 0)
Else
        MouseClick("left", $pos[0] + 523, $pos[1] + 274, 1, 0)
EndIf
MouseMove($mpos[0], $mpos[1], 0); 鼠标回到原位

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2012-2-21 16:28:35 | 显示全部楼层
本帖最后由 itljl 于 2012-2-21 16:46 编辑

回复 8# lixiaolong


    谢谢大家,经过大家的讨论,我发现就是这样没有ID,没有NAME的按钮,只能用提交表单,模拟鼠标点击等方法了。
发表于 2012-2-25 22:00:55 | 显示全部楼层
回复 3# itljl

原来楼主是想做一个作蔽程序啊
被弹窗拦截阻止的很容易解决啊,把那个网址添加到允许弹窗的网站列表中就可以了,没有ID的表单按纽也可以点击的,通过表单元素就可以了
发表于 2012-4-17 22:28:37 | 显示全部楼层
回复 1# itljl


    楼主啊。看下我写的2345刷分程序源码你就明白 了~!
发表于 2012-4-18 09:11:06 | 显示全部楼层
只看的一点懂。哎。
发表于 2012-8-19 20:30:51 | 显示全部楼层
扣了下载不了
发表于 2014-2-17 09:55:31 | 显示全部楼层
感谢,感谢。学习了
发表于 2014-4-8 14:09:11 | 显示全部楼层
很有价值的代码,正在找这个东东,谢谢分享。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-20 04:47 , Processed in 0.082240 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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