jquery选择器以及在RF中的使用

上一篇 / 下一篇  2016-07-30 22:08:14 / 个人分类:Robotframework

在rf中可以使用execute javascript来执行js,有时可以更方便有效,或者解决常规方法无法解决的问题,js提供查找元素的方法非常有限,因此,适当了解一些常用的js框架知识是很有必要的。

U?jvFE'S `0

jquery是一种非常流行的一个js库
Z_2q(O"\T8B @7x0jquery选择器:
51Testing软件测试网"}S.Uj(rIE7A0n

*使用$('expr'),支持css表达式51Testing软件测试网5|{\wm2N[

如$('div.class li:contains("**")')51Testing软件测试网]Q |*o1o

$('div>li:visible')51Testing软件测试网]0B5Z"Rx

*如果页面引入了js库,则在ie或ff或chrome按F12进入控制台,执行jquery选择器51Testing软件测试网c#d@ Bv ^&q b:s

*使用cssselector表达式51Testing软件测试网K m'u\3j u

$('div.items>li:nth-child(2)')

?i9KB'XJ0

*使用dom内移动

#s \ Cs+t0

$('#id').find('li').eq(2).next()

'j'jV4TgM jJ0

方法:51Testing软件测试网#i`|#d0Yq4o

*祖先元素:parent(),parents().parentsUntile()51Testing软件测试网*A2SuR)nF)AU0m

父元素:直接上一级元素,返回一个51Testing软件测试网nzviAb d
parents():所有祖先元素51Testing软件测试网MQ0n;u o+Q9kz2^H
parentsUntile(),51Testing软件测试网 G3h(DKD7Hw@7p
$('div#mydiv').parentsUntil('divuntil'):返回所有之间的祖先元素

6i!{3L)Ef+s0

*子孙元素chilidren,find

&m&Vn,H yIgC [6k!Z0

*同级元素 nextsiblings,prevall,prevuntil,next,nextall,nextuntil

;hiABd"m1D0

*属性选择器:

-or+r:ZY Kb*H0

= $ ^ * !<>51Testing软件测试网(^6X DD5s
以上表示等于,结尾,开始,包含,不等于,类似于css51Testing软件测试网,Lq!\!u o;E:y@
如:$("[class!='item-disable']")
(lB7} bf\8X'gES0过滤:first(),not(),eq()等51Testing软件测试网K%ub1za oG O4q
获取和设置元素的值51Testing软件测试网 _1[p8e*b aX
text(),html(),value()51Testing软件测试网fu;|Ls^
如果参数内容为空,则表示获取,否则为设置51Testing软件测试网'|jA"lFk9~t\
获取或设置元素的属性attr()
51Testing软件测试网0A^t#W7nj5X.~g G

$(selector).attr(attribute)51Testing软件测试网k+caFXt

$(selector).attr(attribute,value)51Testing软件测试网Z`+l+i:W\7Q`

*判断元素是否存在:$('expr').length>0

(l)WW8Lbu.t0

*css方法:设置或返回元素的样式属性
9I'\3t.\*rY FffT0$('#id').css("display","inline");
I'Du P;f9?|R%_8N0$('#id').css('readonly');51Testing软件测试网)sDh\L,g.N
show():显示元素51Testing软件测试网w {@2]a!i9R
$('div:hidden').show():显示所有隐藏的div元素
51Testing软件测试网 EF/Eg*A!a

*filter(expr),expr可以是多个51Testing软件测试网,h$o[Il&`%F J
$().filter(":contains('add'),:contains('add2')")

.I'QC-_:}wW%G0

jquery对象与dom对象的互转,51Testing软件测试网nc/QO0S#_J]lF
1.jquery转成dom对象
I;f|];l0 jquery是数组,使用索引即可转换。或get[index]51Testing软件测试网 O*D6B(v1_+d/g
 如:$('id')[0].innerHTML51Testing软件测试网cY i}w1q4K~9?
2.dom转换成jquery51Testing软件测试网#eV[Sxf
 直接使用$()来包装51Testing软件测试网aH-YKg)t L O
如:var ele=dom.getElementById('id')
'l"Z$P:IF'W#}2?0 $ele).html()
51Testing软件测试网I4M Y1@a H/J

RF里的使用51Testing软件测试网I ]*c|+[]:w c#kY

1.使用jquery前缀51Testing软件测试网/[;f-SpnA

jquery=li[value='']:visible

g`&J[8f d0

貌似只支持$('')里面的语法51Testing软件测试网L,_/J7q~}J

2.点击元素
"Ld'rR5R y0execute javascript. $(#list1).find('li').eq(2).click()51Testing软件测试网@4m W)A6x8@8E})G!?
3.返回值
+`}"M)E[0execute javascript. var a=$('ul>div').val();return var
51Testing软件测试网-d)ssw|`mO#T

4.等待元素状态
{*r)ak1G\o0${input} |execute javascript.|return $('div>input:visivle')
P}*K hAec Uw0run keywords unless |${input} ……
*q oM;l f{c"Kr05.滚动条操作51Testing软件测试网{)rs)O+YO jf
$(#scroll).scrollTop=$(#scroll).height():滚动到最底部51Testing软件测试网rG r9g@:_F
$(#scroll).scrollLeft=$(#scroll).width():滚最右边动到

-Q+h E6G3Y@Oo0

 

} d!u1hz9{J~0

 

h%L0u"AE0

TAG: jquery jQuery

引用 删除 Warrrenren   /   2016-08-01 11:53:43
引用 删除 Warrrenren   /   2016-08-01 11:53:22
3
 

评分:0

我来说两句

Open Toolbar