找回密码
 加入
搜索
查看: 4512|回复: 6

[IE类操作] IE中多个控件名字相同,如何提交其中指定的控件

  [复制链接]
发表于 2011-9-20 18:00:11 | 显示全部楼层 |阅读模式
本帖最后由 .個朲綉√ 于 2011-9-20 20:09 编辑

下面这网页中其中一段源码:
        <tr class="tr_out0" onClick="chooseRow(this)" onMouseOver="overRow(this)" onMouseOut="outRow(this)" onDblClick="popTr(this)">
        
        <td class="data_desc">312935182</td>
                <td class="data_desc">GSM普通<input type="hidden" name="mdn_to_subs.service_type" value="1001"></td>
                <td class="data_desc">13838389438<input type="hidden" name="mdn_to_subs.service_num" value="13838389438">        </td>
                <td class="data_desc"  style="display:none" >江苏<input type="hidden" name="mdn_to_subs.region_id" value="A"></td>
                <td class="data_desc" >313290961<input type="hidden" name="mdn_to_subs.subscription_id" value="313290961"></td>        
                <td class="data_desc" >300592589<input type="hidden" name="mdn_to_subs.customer_id" value="300592589"></td>
                <td class="data_desc" align="center" >停机<input type="hidden" name="mdn_to_subs.service_status" value="2"></td>
                        <td class="data_desc" >2011-09-20<input type="hidden" name="mdn_to_subs.active_date" value="2011-09-20"></td>        <td class="data_desc" >2037-01-01<input type="hidden" name="mdn_to_subs.inactive_date" value="2037-01-01"></td>                        
                <td class="data_desc" align="center">
                <input class=standardButton style="width:60px" type="button" name="btokok" value="选定" onClick="chooseBusitype(this)" service_type='1001'>
                <input class=standardButton style="width:60px" type="button" name="btset" value="重填" onClick="window.parent.history.go(0)" >
                <input type="hidden" name="mdn_to_subs.account_id" value="312935182">
                <input type="hidden" name="region_id" value="A">
                </td>
        </tr>
        
        <tr class="tr_out0" onClick="chooseRow(this)" onMouseOver="overRow(this)" onMouseOut="outRow(this)" onDblClick="popTr(this)">
        
        <td class="data_desc">312935182</td>
                <td class="data_desc">GSM普通<input type="hidden" name="mdn_to_subs.service_type" value="1001"></td>
                <td class="data_desc">13838389438<input type="hidden" name="mdn_to_subs.service_num" value="13838389438">        </td>
                <td class="data_desc"  style="display:none" >江苏<input type="hidden" name="mdn_to_subs.region_id" value="A"></td>
                <td class="data_desc" >313290961<input type="hidden" name="mdn_to_subs.subscription_id" value="313290961"></td>        
                <td class="data_desc" >300592589<input type="hidden" name="mdn_to_subs.customer_id" value="300592589"></td>
                <td class="data_desc" align="center" >无效<input type="hidden" name="mdn_to_subs.service_status" value="0"></td>
                        <td class="data_desc" >2011-07-15<input type="hidden" name="mdn_to_subs.active_date" value="2011-07-15"></td>        <td class="data_desc" >2011-09-20<input type="hidden" name="mdn_to_subs.inactive_date" value="2011-09-20"></td>                        
                <td class="data_desc" align="center">
                <input class=standardButton style="width:60px" type="button" name="btokok" value="选定" onClick="chooseBusitype(this)" service_type='1001'>
                <input class=standardButton style="width:60px" type="button" name="btset" value="重填" onClick="window.parent.history.go(0)" >
                <input type="hidden" name="mdn_to_subs.account_id" value="312935182">
                <input type="hidden" name="region_id" value="A">
                </td>
        </tr>
        
        <tr class="tr_out0" onClick="chooseRow(this)" onMouseOver="overRow(this)" onMouseOut="outRow(this)" onDblClick="popTr(this)">
        
        <td class="data_desc">306014795</td>
                <td class="data_desc">OCS<input type="hidden" name="mdn_to_subs.service_type" value="1050"></td>
                <td class="data_desc">13838389438<input type="hidden" name="mdn_to_subs.service_num" value="13838389438">        </td>
                <td class="data_desc"  style="display:none" >江苏<input type="hidden" name="mdn_to_subs.region_id" value="A"></td>
                <td class="data_desc" >306255222<input type="hidden" name="mdn_to_subs.subscription_id" value="306255222"></td>        
                <td class="data_desc" >0<input type="hidden" name="mdn_to_subs.customer_id" value="0"></td>
                <td class="data_desc" align="center" >销户<input type="hidden" name="mdn_to_subs.service_status" value="4"></td>
                        <td class="data_desc" >2010-07-29<input type="hidden" name="mdn_to_subs.active_date" value="2010-07-29"></td>        <td class="data_desc" >2011-04-30<input type="hidden" name="mdn_to_subs.inactive_date" value="2011-04-30"></td>                        
                <td class="data_desc" align="center">
                <input class=standardButton style="width:60px" type="button" name="btokok" value="选定" onClick="chooseBusitype(this)" service_type='1050'>
                <input class=standardButton style="width:60px" type="button" name="btset" value="重填" onClick="window.parent.history.go(0)" >
                <input type="hidden" name="mdn_to_subs.account_id" value="306014795">
                <input type="hidden" name="region_id" value="A">
                </td>
        </tr>
        
</table>

上图中,有三个选项,停机,无效,销户,销户或无效,可能出现多次,而且选定的控件都是一个名字,Name也都是btokok
但是停机和开机是唯一的,(如下图)我需要选定开机或停要,如可选定呢?用IE.au3操作的,谢谢!!
怎么才能根据用户状态来判断提效哪一个呢?控件Name都是一样的。。。。小弟无才。。。特一请教!!!

本帖子中包含更多资源

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

×
发表于 2011-9-20 19:05:27 | 显示全部楼层
正则貌似可以,但我不会IE操作!等候高人!
发表于 2011-9-20 20:26:18 | 显示全部楼层
看看能否POST?
发表于 2011-9-20 21:41:58 | 显示全部楼层
你用_IEFormGetObjByName 可以指定要选的form元素,具体请看帮助。
但是即使如此,恐怕用它来实现你想要的功能会有难度,看你的抓图,应该是想指定号码和服务类型,执行选定。用ie.au3来做的话,选定前,不得不做出一番页面代码分析,而且直接操作页面不是很稳定。

楼上有人建议用post来做,可以考虑下,抓取提交字符串规律,既简单又方便

评分

参与人数 1金钱 +30 贡献 +5 收起 理由
.個朲綉√ + 30 + 5 不懂正则,或许正则很容易搞定。

查看全部评分

 楼主| 发表于 2011-9-20 22:46:35 | 显示全部楼层
回复 4# bakefish


    呵呵,谢谢您,其实是我多此一举了,您之前帮我解决的时候,已经给出正确的方法,我没有详细去看,这个帖子多此一问。

其实直接post就可以,但是我想要做一些模拟操作,post不知道能否完成,如果我要点击某个控件,打印文件等。
发表于 2011-9-21 00:23:53 | 显示全部楼层
我的思路是这样的,_IEFormGetObjByName得到集合,然后用循环根据控件的inertext进行判断,你说如何呢?
发表于 2011-9-21 14:55:10 | 显示全部楼层
回复  bakefish


    呵呵,谢谢您,其实是我多此一举了,您之前帮我解决的时候,已经给出正确的方法, ...
.個朲綉√ 发表于 2011-9-20 22:46



    你要具体分析你要做的动作,比如你说的点击控件、打印,如果只是调了js代码,肯定不能用winhttp来做,如果是和http服务器简单交互,比如get,post之类,没有什么特殊情况,自然用xmlhttp或者winhttp来做最方便。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-23 06:48 , Processed in 0.142008 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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