元素定位
元素的定位应该是自动化测试的核心,要想操作一个元素,首先应该识别这个元素象。
webdriver提供了一系列的对象定位方法,常用的有以下几种
案例:打开百度首页,在搜索框自动输入“Selenium我要自学网”关键词,然后点击搜索按钮,查看搜索页面。
id与name 定位
1 | from selenium import webdriver |
tag_name定位
案例:打开我要自学网页面,在用户名输入框输入用户名“selenium”
1 | from selenium import webdriver |
class_name定位
根据标签中属性class来进行定位的一种方法
1 | from selenium import webdriver |
link_text定位
link_text定位就是根据链接文字进行定位
1 | from selenium import webdriver |
XPath定位
XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
xpath绝对与相对定位
1 | from selenium import webdriver |
xpath组合与逻辑定位
1 | from selenium import webdriver |
css定位
Selenium极力推荐使用CSS 定位,而不是XPath来定位元素,原因是CSS 定位比XPath 定速度快,特别是在IE浏览器环境
前端开发人员就是用CSS Selector设置页面上每一个元素的样式,无论那个元素的位置有多复杂,他们能定位到,那我们使用CSS Selector肯定也能非常精准的定位到页面Elements。
CSS常用定位方法
- #id id选择器根据id属性来定位元素
- .class class选择器,根据class属性来定位元素
- [attribute=’value’] 根据属性来定位元素
- element.Attribute>element 根据元素层级来定位 父元素>子元素
1 | from selenium import webdriver |
下拉菜单元素定位
案例:在我要自学网登录页面选择指定的保留天数。
1.根据选项元素标签定位
1 | from selenium import webdriver |
2.使用Select类定位
1 | from selenium import webdriver |
By 元素定位
- find_element(By.ID,”loginName”)
- find_element(By.NAME,”SubjectName”)
- find_element(By.CLASS_NAME,”u-btn-levred”)
- find_element(By.TAG_NAME,”input”)
- find_element(By.LINK_TEXT,”退出”)
- find_element(By.PARTIAL_LINK_TEXT,”退”)
- find_element(By.XPATH,”.//*[@id=’Title”)
- find_element(By.CSS_SELECTOR,”[type=submit]”)
1 | from selenium import webdriver |
frame页面定位
案例:在Frame.html文件种定位搜狗搜索页面,进行搜索操作。
1 | from selenium import webdriver |
元素操作方法
- text 返回元素内容
- clear()清除元素内容
- send_keys() 传送元素值
- click() 点击操作
- submit()提交操作
- get_attribute()获取元素的属性
代码实践
1 | #注意调用的text没有()号,元素属性 |