点下网页中按钮的问题
想学一下下面这段代码中如何按下“复制题目”、“下一题”、“上一题”、“转到”。前两个比较重要,最后一个可能无法实现。以前按照input.id的方法在这里行不通,不知道为什么,求助。谢谢!<div class="tiebabox"><div class="tieba">
<a href="javascript:void(0)" onfocus="this.blur();" class="facebook inp tip" onclick="go(0)" title="按键盘 → 进入下一题">下一题</a>
<a href="javascript:void(0)" onfocus="this.blur();" class="facebook inp tip" onclick="go(-1)" title="按键盘 ← 进入上一题">上一题</a>
<a href="javascript:void(0)" onfocus="this.blur();" class="green inp" id="btn_jieshi">本题解释</a>
<a href="javascript:void(0)" onfocus="this.blur();" class="facebook inp" id="btn_fav">收藏</a>
<a class="red inp" id="btn_copy">复制题目</a>
</div>
<div class="userinfo">
<div class="left">
答对:<span id="TrueNum">0</span> 题 答错:<span id="FalseNum">0</span> 题
正确率:<span id="TruePre">00%</span></div>
<div class="right tip" title="正确答题后跳转到下一题">
<input style="vertical-align:middle;" type="checkbox" name="AutoNextTmp" id="AutoNextTmp" value="1" title="正确答题后跳转到下一题"><label style="vertical-align:middle;" for="AutoNextTmp">自动下一题</label>
</div>
<div class="rightr">
共 <span id="quallcount">1</span> 题
<span class="tip" title="跳至指定的题 (本功能仅限于VIP用户使用)">转到<input type="text" id="tbtestindex" name="tbtestindex" Disabled class="uan">题</span>
</div>
</div>
</div> 发重复了可以删除 用_IELinkClickByText不是可以實現嗎? 我只能用点击鼠标的最原始方法解决了。世间最痛苦的事莫过于没能解决自己心中真正的疑问了。疑问还有很多,准备别的途径再尝试了 我简单分享下我的经验,
这个问题,最主要是要找到并抓到这个所谓的“控件”
1、先尝试用AU3自带的窗口信息工具抓取
2、用IE8(或更高版本)自带的F12,开发人员工具抓取
3、彗星小助手(这个可以baidu下,不过我一般不用,就是AU3自带的窗口信息工具强化IE版)
4、抓包工具,例如HTTPWATCH这类的
主要是找到控件
例如按钮,一般是<input name="" id="" > </input>
我还遇到过很多是<div> </div>
<a > </a>
总之,一般都是有标签的
可以用<IE.au3>自带的函数
_IEGetObjById
_IEGetObjByName
_IEFormGetObjByName
当然,很多情况下,是会遇到不能直接找到所需要的按钮等控件的,这就要静下心来一层层剥了
先分析下网页的frame标签或者head、body标签,如果有好几个,就说明是多个框架网页,
这就需要先_IEAttach窗口,再_IEFrameGetObjByName/_IEFrameGetCollection找到某个框架或遍历所有框架
然后再找到框架内的某个table或者form等其他大的部件,再找到其中所需要的小控件
杀手锏:实在找不到,可以考虑用GetCollection这种函数遍历
举个例子:利用_IETagNameGetCollection函数,可以遍历某个框架内所有tag元素
例如我遇到某个网站,都是用<nobr></nobr>格式化文本的
#include <IE.au3>
$oIE = _IE_Example ("form");这里可以自己先ieattach然后ieframegetobjbyname
$NOBRS = _IETagNameGetCollection ($oIE, "NOBR")
For $NOBR In $NOBRS
MsgBox(0, "NOBR", "NOBR.id: " & $NOBR.id & @CRLF &" innertext: " & $NOBR.innertext)
Next
相信总能找到所需要的 想如果用POST 的话是不是更简单?
页:
[1]