老榆头 发表于 2009-3-17 10:15:10

自动登陆中,如何选择select

登陆地址为:
http://www.maxxp.com.cn/bbs/logging.php?action=login

就是如何选中其中的“安全提问”中的某一项
我用了:_IEFormElementOptionSelect()也不行
用:_IEAction ($o_select, "click")也不行
请教

[ 本帖最后由 老榆头 于 2009-3-18 08:55 编辑 ]

liongodmien 发表于 2009-3-17 11:09:07


#include <IE.au3>

$oIE = _IEAttach('记住我的登录状态', 'text')

$objs = $oIE.document.getElementsByTagName('LI')

For $obj In $objs
        If StringInStr($obj.outertext, '餐馆') Then
                $obj.click()
                ExitLoop
        EndIf
Next

老榆头 发表于 2009-3-17 12:03:40

谢谢狮兄

问题解决!!

就是还想多问一下,下面这句中的最后的那个TagName为什么是LI
$objs = $oIE.document.getElementsByTagName('LI')

我把它换成与select内、外的几个标签如select、div、option等都不行
谢谢!

老榆头 发表于 2009-3-17 13:47:29

使用IE的UDF也是可以的:
$oElements = _IETagNameGetCollection ($oIE,"li")
For $oElement In $oElements
   
        If StringInStr($oElement.innerText,'驾驶执照') Then
                $oElement.click()
                ExitLoop
                ;MsgBox(0, "Element Info", "Tagname: " & $oElement.tagname & @CR & "innerText: " & $oElement.innerText)
        EndIf
Next

可是,我还是不明白,为什么要用LI,而不是OPTION
虽然,我用_IETagNameAllGetCollection(),来看的确包含在LI里面
那源代码为什么显示的不是呢?

老榆头 发表于 2009-3-17 13:58:21

知道了,使用
#include <IE.au3>
_IEDocReadHTML ( ByRef $o_object )

查看一下就知道了
又看了一下帮助,知道通过浏览器查看的网页源代码,可能会由于javascript或autoit等修改
所以显示不一样

狮兄,能问一下,你在这个问题上是如何操作的?
是先直接用option试了一下不行,马上就用_IEDocReadHTML()看了一下源码
然后修改TAGNAME为LI吗?
还是别的方法,还望赐教,多谢!

liongodmien 发表于 2009-3-17 23:14:04

有些网页如果不用源码读取函数获取源码,只用右键的查看源码,会得不到真正所要的,我一般是先右键查看源码,如果有问题,马上就用源码下载器.

分析网页源码,可以很清楚的看到,那个选项的变换是由点击那些文字产生的结果,而那些要被点击的文字都只能通过LI标签对象的方式取得操作所需.

老榆头 发表于 2009-3-18 08:55:44

谢谢狮兄
知道了

再次感谢

老榆头 发表于 2009-3-20 22:48:56

嘎得,竟然来了一个发广告的
页: [1]
查看完整版本: 自动登陆中,如何选择select