.個朲綉√ 发表于 2011-9-20 18:00:11

IE中多个控件名字相同,如何提交其中指定的控件

本帖最后由 .個朲綉√ 于 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都是一样的。。。。小弟无才。。。特一请教!!!

gzh888666 发表于 2011-9-20 19:05:27

正则貌似可以,但我不会IE操作!等候高人!

mozha 发表于 2011-9-20 20:26:18

看看能否POST?

bakefish 发表于 2011-9-20 21:41:58

你用_IEFormGetObjByName 可以指定要选的form元素,具体请看帮助。
但是即使如此,恐怕用它来实现你想要的功能会有难度,看你的抓图,应该是想指定号码和服务类型,执行选定。用ie.au3来做的话,选定前,不得不做出一番页面代码分析,而且直接操作页面不是很稳定。

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

.個朲綉√ 发表于 2011-9-20 22:46:35

回复 4# bakefish


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

其实直接post就可以,但是我想要做一些模拟操作,post不知道能否完成,如果我要点击某个控件,打印文件等。

huangke 发表于 2011-9-21 00:23:53

我的思路是这样的,_IEFormGetObjByName得到集合,然后用循环根据控件的inertext进行判断,你说如何呢?

bakefish 发表于 2011-9-21 14:55:10

回复bakefish


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


    你要具体分析你要做的动作,比如你说的点击控件、打印,如果只是调了js代码,肯定不能用winhttp来做,如果是和http服务器简单交互,比如get,post之类,没有什么特殊情况,自然用xmlhttp或者winhttp来做最方便。
页: [1]
查看完整版本: IE中多个控件名字相同,如何提交其中指定的控件