关于网页点击的讨论。[已解决]
本帖最后由 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,大家说说能怎么点击呢? 直接提交表单就可以,多看看帮助!!!!!!!!!!!#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);提交表单 多谢楼上的朋友,我开始也试过这种办法,只是不完美,我想知道别的办法。
如正常的点击是不被弹窗阻止的,这种提交这会被弹窗拦截给阻止了。 本帖最后由 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窗口吧。如若还不行,只能改网页的源码了,让按钮按下后在当前页打开新网页 回复 4# papapa314
谢谢,可能这些网页是估计这样写的不让点击的。 回复 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("", "", "Internet Explorer_Server1","{ENTER}") 用这种方法可以获取到按钮,但是点击用.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 另一种方法.
#include <IE.au3>
$oIE = _IECreate("http://2345.com", 0, 1, 1, 1)
_IELoadWait($oIE)
;~ WinSetState("", "", @SW_MAXIMIZE); 窗口最大化
$UserName = _IEGetObjById($oIE, "search1")
$UserName.value = "搜索内容"
$mpos = MouseGetPos()
$pos = WinGetPos("")
If WinGetState("") = 47 Then
MouseClick("left", $pos + 700, $pos + 278, 1, 0)
Else
MouseClick("left", $pos + 523, $pos + 274, 1, 0)
EndIf
MouseMove($mpos, $mpos, 0); 鼠标回到原位
本帖最后由 itljl 于 2012-2-21 16:46 编辑
回复 8# lixiaolong
谢谢大家,经过大家的讨论,我发现就是这样没有ID,没有NAME的按钮,只能用提交表单,模拟鼠标点击等方法了。 回复 3# itljl
原来楼主是想做一个作蔽程序啊
被弹窗拦截阻止的很容易解决啊,把那个网址添加到允许弹窗的网站列表中就可以了,没有ID的表单按纽也可以点击的,通过表单元素就可以了 回复 1# itljl
楼主啊。看下我写的2345刷分程序源码你就明白 了~! 只看的一点懂。哎。 扣了下载不了 感谢,感谢。学习了 很有价值的代码,正在找这个东东,谢谢分享。
页:
[1]