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

2.8 定位一组元素elements

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

2.8 定位一组元素elements

&h%x? {3b%raH0前言    
?x"S^i0~0前面的几篇都是讲如何定位一个元素,有时候一个页面上有多个对象需要操作,如果一个个去定位的话,比较繁琐,这时候就可以定位一组对象。51Testing软件测试网6y-I U/|@6t/@
webdriver 提供了定位一组元素的方法,跟前面八种定位方式其实一样,只是前面是单数,这里是复数形式:find_elements51Testing软件测试网3v3KC,{vdE

51Testing软件测试网 Q*Hg)`l5r9{2@ BY

51Testing软件测试网V:?&jw,VpOr
本篇拿百度搜索作为案例,从搜索结果中随机选择一条搜索结果,然后点击查看。

CQ`YT4V%b0

;c,^3qRJ%~]8\Z0 51Testing软件测试网K+w6AN)\SA+e

51Testing软件测试网-YMrT E0Ce.ra

一、定位搜索结果
,v4l#w$C+['m-x0    1.在百度搜索框输入关键字“测试部落”后,用firebug查看页面元素,可以看到这些搜索结果有共同的属性。51Testing软件测试网&@f^G B qj-A

51Testing软件测试网I%Q]#uS K2KJ&~

*X;c%Ih1[6ij051Testing软件测试网q [}(qB

    2.从搜索的结果可以看到,他们的父元素一样:<h3 class="t">
MA_Y)M0c3q*W5C0    3.标签都一样,且target属性也一样:<a target="_blank" />51Testing软件测试网Wp(`(NT ]1o|
    4.于是这里可以用css定位(当然用xpath也是可以的)51Testing软件测试网7DY}JK

UzQXSo.p0

FVL NCOk0

/rM+}SR}#t"?8Y0 51Testing软件测试网]9gm` g aC8t

51Testing软件测试网3W6JpQ HhL1r Y

二、确认定位结果
1C'e`H*FhK%u@0    1.前面的定位策略只是一种猜想,并不一定真正获取到自己想要的对象的,也行会定位到一些不想要的对象。51Testing软件测试网os5y]t'nX
    2.于是可以获取对象的属性,来验证下是不是定位准确了。这里可以获取href属性,打印出url地址。

9z0q4IPr/n051Testing软件测试网S7@qA0w,]

51Testing软件测试网#XOjAEUP

_b6YY Fs?~0 

H\9xRrKGE}051Testing软件测试网4hJO5|m i5\

三、随机函数51Testing软件测试网3L+kne"s1h h]D
    1.搜索结果有10条,从这10条中随机取一个就ok了
_TJx'P `0    2.先导入随机函数:import random51Testing软件测试网2tEofp"|?D3I3f(S
    3.设置随机值范围为0~9:a=random.randint(0~9)51Testing软件测试网-I?.N)r@

)q2l#A f od1bk1M0xM v0

0f"A#f$r(H F051Testing软件测试网r}aS'A[#H/D_

 51Testing软件测试网+Ne&v3p;}{

51Testing软件测试网WI8l zo o&]R [#e

四、随机打开url
0M-h*{kh2i0    1.从返回结果中随机取一个url地址
&fsc"w T1FI+[0    2.通过get方法打卡url
)S _t&R)bE(y0    3.其实这种方式是接口测试了,不属于UI自动化,这里只是开阔下思维,不建议用这种方法

g&F%K]$[3bc"{051Testing软件测试网A N[}tcS2a"A"M

3]"W,J'E y`)S051Testing软件测试网z5n~ua(XN6~ G5X

 51Testing软件测试网"m}:G+jJZh F9q3L"n

51Testing软件测试网 j5X9Q)l2?R

五、通过click点击打开51Testing软件测试网&^ NJ2o#e\ @W-x
    1.前面那种方法,是直接访问url地址,算是接口测试的范畴了,真正模拟用户点击行为,得用click的方法

s,D.y TA)puh(S&R0
复制代码
#coding:utf-8fromseleniumimportwebdriverimportrandom51Testing软件测试网PuR0U:{q;_l
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")
i i(p3lj^0
#设置随机值t = random.randint(0, 9)#随机取一个结果点击鼠标s[t].click()
复制代码

s!yd_^G(w*S!p0 51Testing软件测试网w`)b\Y(f9o

Hl ~E `0不知道有小伙伴有没注意一个细节,前面在搜索框输入关键字后,我并没有去点击搜索按钮,而是用的submit的方法,submit相当于回车键。51Testing软件测试网"vf^ B?+R
具体的操作对象方法,下篇详细介绍。本篇主要学会定位一组对象,然后随机操作其中的一个。

D$^ A O\zv$B&m;O`0

TAG:

 

评分:0

我来说两句

Open Toolbar