测试必须在时间、质量和成本之间获取一个平衡点,这是测试策略和测试设计的价值体现。

2.8 定位一组元素elements

上一篇 / 下一篇  2018-06-12 10:47:43 / 个人分类:Python+Selenium2 WebDriver API

2.8 定位一组元素elements

B W^'SyX$N0前言    
4vp2I$d'J.Y0前面的几篇都是讲如何定位一个元素,有时候一个页面上有多个对象需要操作,如果一个个去定位的话,比较繁琐,这时候就可以定位一组对象。
_$I*l3jC0webdriver 提供了定位一组元素的方法,跟前面八种定位方式其实一样,只是前面是单数,这里是复数形式:find_elements

\W k/NcmJ051Testing软件测试网Fa?K\+y&b


0UGp8he Y!JR^R0本篇拿百度搜索作为案例,从搜索结果中随机选择一条搜索结果,然后点击查看。51Testing软件测试网1t9X9Y:Y#jr.w

51Testing软件测试网 sp dN r"JLQ

 51Testing软件测试网T}O6_dC(G0|^0?

$V l@0_*t}0cik0一、定位搜索结果51Testing软件测试网4R9IjiD
    1.在百度搜索框输入关键字“测试部落”后,用firebug查看页面元素,可以看到这些搜索结果有共同的属性。51Testing软件测试网\_x j{ o

"yv%J5`OyU0

!A9p`z)O0

yf/fpwq7B2ZC0    2.从搜索的结果可以看到,他们的父元素一样:<h3 class="t">51Testing软件测试网:L4R:\#tW0aUb
    3.标签都一样,且target属性也一样:<a target="_blank" />
9FL4P/^_7|.Ju `8yk [0    4.于是这里可以用css定位(当然用xpath也是可以的)

7C;f'c[:O051Testing软件测试网N0n%Q4@ay#KH

e(\,iM `/gF M0

j t4q1tlDc%H0 51Testing软件测试网B-s*H:L s6y,O

51Testing软件测试网]\~\J)ga

二、确认定位结果
xU*N2yy@S(dh_0    1.前面的定位策略只是一种猜想,并不一定真正获取到自己想要的对象的,也行会定位到一些不想要的对象。
*X#o {qD/eR0    2.于是可以获取对象的属性,来验证下是不是定位准确了。这里可以获取href属性,打印出url地址。

;|Lq U+O oN'y0

GUt0]3BY+d5h2El ]F051Testing软件测试网 y:d0bl%@r%mv n.f

51Testing软件测试网S)X?2xma&yJ4iQi

 

T;iG#|8[051Testing软件测试网i+@4YVT$i,tF*[

三、随机函数51Testing软件测试网A?R3{5T[TEX-d
    1.搜索结果有10条,从这10条中随机取一个就ok了51Testing软件测试网n r\SF^ihY&t
    2.先导入随机函数:import random
u#l0{1| A6I0    3.设置随机值范围为0~9:a=random.randint(0~9)

Dp3U4_j+|0

'E.K%]#q3K7]051Testing软件测试网:x1\A-N3v6V$Y

B5kP0?a$k{T q0 

w/JA D sa#`#{,SLP0

B#eX4i4U0四、随机打开url51Testing软件测试网`7omMJ0E~
    1.从返回结果中随机取一个url地址51Testing软件测试网]2aj:g Xl;_R
    2.通过get方法打卡url51Testing软件测试网1S_,\0M o5u b5ZxD
    3.其实这种方式是接口测试了,不属于UI自动化,这里只是开阔下思维,不建议用这种方法

C4Ush'B.C&F/t0

&U(~%U!D f{-j"m.f0

DR,tl DHVh[$SR051Testing软件测试网K8d.].\ Z,q"[,H@A

 

n7T"D$F Uk+m5DOK0

]3f[8e;O0五、通过click点击打开51Testing软件测试网S)h*`M3~4W{ }1}
    1.前面那种方法,是直接访问url地址,算是接口测试的范畴了,真正模拟用户点击行为,得用click的方法51Testing软件测试网g/z2SBx BR$xe7|0t

复制代码
#coding:utf-8fromseleniumimportwebdriverimportrandom51Testing软件测试网.D/ATNa0k)H.Y
driver
=webdriver.Firefox() driver.get("https://www.baidu.com") driver.implicitly_wait(10) driver.find_element_by_id("kw").send_keys(u"测试部落") driver.find_element_by_id("kw").submit() s= driver.find_elements_by_css_selector("h3.t>a")
e3r0V7{t0Z8@!D+z`pX0
#设置随机值t = random.randint(0, 9)#随机取一个结果点击鼠标s[t].click()
复制代码

5}6sSQNms2[0 51Testing软件测试网?B\ ?a/A,m

#{e&q t:`t0不知道有小伙伴有没注意一个细节,前面在搜索框输入关键字后,我并没有去点击搜索按钮,而是用的submit的方法,submit相当于回车键。
c HA9T(c/m0具体的操作对象方法,下篇详细介绍。本篇主要学会定位一组对象,然后随机操作其中的一个。

m$XN|3R8XQN0

TAG:

 

评分:0

我来说两句

Open Toolbar