闲话
前文已经说了基本的定位元素的方式和模拟键鼠点击页面元素,本篇将给大家讲讲自动化测试的进阶技巧 关键字find_elements和iframe
因为这次文章属纯文本笔记分享,需要这次知识的视频教程的小伙伴可以点击并输入暗号:优快云
书接上文:【Selenium】Selenium自动化入门之操作元素与句柄
appium篇:【appium】appium自动化入门之环境搭建(上)
目录
2.8 定位一组元素 find_elements
前言
前面的几篇都是讲如何定位一个元素,有时候一个页面上有多个对象需要操作,如果一个个去定位的话,比较繁琐,这时候就可以定位一组对象。
webdriver 提供了定位一组元素的方法,跟前面八种定位方式其实一样,只是前面是单数,
返里是复数形式:find_elements
本篇拿百度搜索作为案例,从搜索结果中随机选择一条搜索结果,然后点击查看。
2.8.1 定位搜索结果
1.在百度搜索框输入关键字“软件测试”后,用 firebug 查看页面元素,可以看到这些搜索结果有共同的属性。
2.从搜索的结果可以看到,他们的父元素一样:< h3 class=“t” >
3.标签都一样,且 target 属性也一样:<a target="_blank"
4.于是这里可以用 css 定位(当然用 xpath 也是可以的)
# coding:utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
driver.implicitly_wait(10)
driver.finf_element_by_id("kw").send_keys(u"软件测试")
driver.finf_element_by_id("kw").submit()
s = driver.find_elements_by_css_selector("h3.t>3")
2.8.2 确认定位结果
1.前面的定位策略叧是一种猜想,并不一定真正获取到自己想要的对象的,也许会定位到一些不想要的对象。
2.于是可以获取对象的属性,来验证下是不是定位准确了。返里可以获取 href 属性,打印出 url 地址
2.8.3 随机函数
1.搜索结果有 10 条,从返 10 条中随机取一个就 ok 了
2.先导入随机函数:import random
3.设置随机值范围为 0~ 9:a=random.randint(0~9)
2.8.4 随机打开 url
1.从返回结果中随机取一个 url 地址
2.通过 get 方法打开 url
3.其实这种方式是接口测试了,不属亍 UI 自劢化,这里只是开阔下思维,不建议用这种(接口测试的教程后续会出)
方法
# coding:utf-8
from selenium