wb.getEle()
- ele = wb.getEle( HTML节点的ID名name, 框架名 )
- 参数是ID或者name属性,返回一个节点对象或框架内子节点对象。
该函数查找并返回页面上的element节点对象,
该对象同样是一个com对象,可以使用com.DumpTypeInfo函数列出该对象的成员.
可以通过第二个参数指定框架窗口,该参数可以省略.
调用wb.getEle之前必须调用 wb.wait() 等待网页下载完毕.
而使用 wb.waitEle() 则实现等待该节点下载并返回该节点的功能,而无须等待整个网页下载完.
wb.queryEle
wbLayout.queryEle("div")
var frame = wbLayout.queryEle("iframe"); frame.querySelector("input#kw").value = "测试";
|
wb.queryEles:
搜索节点对象,该函数返回的是一个数组,\n但可以通过调用数组的成员函数批量调用节点的同名成员函数,支持click函数,\n即使找不到节点,此函数也会返回一个空数组.
返回table对象,长度大于0这代表查找到元素。
必须找到框架才能返回,如果框架有可能不出现,应增加判断或 改用 wb.waitQueryEles()。判断写法:
if( wb.waitDoc("框架名",超时值) ){ //出错处理 }
|
元素查找写法示例(很多写法可以参考网页探针):
#根据className查找元素 var elTest = wb.queryEles( className = "test" )
#根据parent和tagName查找元素 var elTestGroupId = wb.queryEles( parent = elTest[1]; tagName = "a");
#根据parent和src查找元素 wb.queryEles( parent="pageframe" ; src="bottom.html " )
wb.queryEles( parent="pageframe" ; src="<@@127.0.0.1/web/rcas/adjust.do?action=init&appNO=@>\d+")
#查找指定iframe名称下的元素(jsKcxzIfra为iframe名称) mainWb.queryEles(parent="jsKcxzIfra";tagName="tbody");
#根据parent/type/innerHTML查找 wb.queryEles( parent = ele;type = "submit";innerHTML = "确定" )
|
- parent这个可选键指定容器(在这个容器里查找),可以指定一个ele对象。也可以指定一个框架名称,如果不指定就是指的wb.getDoc()。
示例代码:
import web.form; /*DSG{{*/ var winform = win.form(parent=...; bottom=451;scroll=1;text="aardio Form";right=681 ) winform.add( ) /*}}*/
//创建web窗体 var wb = web.form( winform ) var html = /** <html class="yui3-js-enabled"> <body> <div class="J_ChargePop default" id="yui_3_3_0_1_132368985183320" style="left: 464.5px; top: 92.5px; width: 445px; height: auto;"> <div class="outer"> <div class="inner"> <div class="bd"> <form action="tb_item_id=14609580454&item_name=%B0%D4%CD%F550%D4%AA%D4%DA%CF%DF%D6%B1%B3%E4&unit=50%D4%AA"> <div class="op"> <button type="submit">确定</button> //要取“确定”按钮 </div> </form> </div> </div> </div> </div> </body> </html> **/ wb.write( html ) winform.show();
var eleSubmit; var qEle = wb.queryEles( className = "op" ) //找到父节点 for(i=1;#qEle;1){ var ele = qEle[ i ] var qEleSubmit = wb.queryEles( parent = ele;type = "submit";innerHTML = "确定" ) if( #qEleSubmit) eleSubmit = qEleSubmit[1] }
if(eleSubmit){ io.open() io.print( eleSubmit.innerHTML ); }
//进入消息循环 win.loopMessage();
|