selenium自动化测试

一:元素定位

(1)id定位:

通过元素的ID属性值来进行元素定位 ,在html标准规范中 ID值是唯一的

定位方法:find_element(By.id,'id属性值')

例子:driver.find_element(By.id,'userA').send_keys('admin')

(2)name定位:

通过元素的name属性值为进行元素定位 name属性值 在HTML页面中,是可以重复的。

定位方法: find_element(By.NAME,'name属性值')

例子:driver.find_element(By.NAME,'userA').send_keys('admin')

(3)class_name定位:

通过元素的class属性值进行元素定位 class属性值是可重复的,class里面有多个值的情况下只能取一个值为属性值

定位方法:find_element(By.CLASS_NAME,'class属性值')

例子:driver.find_element(By.CLASS_NAME,'telA').send_keys(18512829605)

(4)tag_name定位:

通过元素的标签名称进行定位, 在同一个html页面当中,相同标签元素会有很多,如果有重复的元素,定位到的元素默认都是第一个元素

定位方法: find_element(By.TAG_NAME,'标签名称')

例子:driver.find_element(By.TAG_NAME,'input').send_keys('admin')

(5)link_text定位:

通过超链接的全部文本信息进行元素定位 ,主要用来定位a标签

定位方法:find_element(By.LINK_TEXT,'全部文本内容')

注意:link_text参数代表的是a标签的全部文本内容。

例子:driver.find_element(By.LINK_TEXT,'访问 新浪 网站').click()

(6)partail_link_text定位:

通过超链接的局部文本信息进行元素定位,主要用来定位a标签

定位方法:find_element(By.PARTIAL_LINK_TEXT,'局部文本内容')

注意:partial_link_text表示的是a标签 的局部文本内容

例子:driver.find_element(By.PARTIAL_LINK_TEXT,'访问').click()

(7)xpath定位:

xpath是用来在xml文件中进行元素定位的标记语言,html是一种特殊的xml,所以xpath也可以用在html中

定位方法: find_element(By.XPATH,"xpath")   xpath为表达式

1.Xpath定位策略:

1.1路径定位:

绝对路径:表达式是以 /html开头,元素的层级之间是以 / 分 隔

相同层级的元素可以使用下标,下标是从1开始.

需要列出元素所经过的所有层级元素 , 工作当中, 一般不使用绝对路径

例子:driver.find_element(By.XPATH,'/html/body/div/fieldset/form/

p[1]/input').send_keys("admin")

1.2.相对路径:匹配任意层级的元素, 是以 //tag_name或者//* 开 头

也可以使用下标,下标是从1开始

例子:driver.find_element(By.XPATH,'//form/p[2]/input').send_keys('123456')

2.属性定位:

匹配任意层级的元素, 是以 //tag_name或者//* 开 头

//*[@attribute='value']    attribute表示的是元素的属性名,value表示的是元素对应属性值

如果使用class的属性进行元素定位,需要用到class里面所有的值

例子:driver.find_element(By.XPATH,"//*[@class='telA']").send_keys('18512829605')

3.属性与逻辑结合:

匹配任意层级的元素, 是以 //tag_name或者//* 开 头

//*[@attribute1='value1' and@attribute2='value2']

例子:driver.find_element(By.XPATH,"//*[@name='telA' and @id='telA']").send_keys('18512829605')

4.属性与层级结合:

匹配任意层级的元素, 是以 //tag_name或者//* 开 头

//p[@id='pa']/input

例子:driver.find_element(By.XPATH,"//p[@id='p1']/input").send_keys("admin")

5.XPATH扩展:

5.1://*[text() = 'value'] value表示的是要定位的元素的全部文本内容

要定位的元素中,attribute属性的属性值的文本内容是value

例子:driver.find_element(By.XPATH,"//*[text()='新浪']").click()

5.2://*[contains(@attribute,'value')] attribute表示的属性名称,value表示的是字符串

要定位的元素中,attribute属性的属性值包含了value的内容

例子:driver.find_element(By.XPATH,"//*[contains(@placeholder,'请输入用户名')]").send_keys("admin")

5.3://*[starts-with(@attribute,'value')] attribute表示的属性名称, value表示的是字符串

要定位的元素,attribute属性的属性值是以value开头

例子:driver.find_element(By.XPATH,"//*[starts-with(@name,'pass')]").send_keys("123456")

CSS定位:

(1)id选择器:表达式: #id

# 表示通过元素的ID属性进行元素选择 id 表示的的id属性的属性值

例子:driver.find_element(By.CSS_SELECTOR,'#userA').send_keys("admin")

(2)class选择器:表达式: .class

.表示通过元素的class属性进行元素选择,class表示的class属性的其中一个属性值

例子:driver.find_element(By.CSS_SELECTOR,".telA").send_keys("18512829605")

(3)元素选择器:表达式: tag_name

就是通过元素标签名称来选择元素,不推荐使用

例子:driver.find_element(By.CSS_SELECTOR,'input').send_keys("admin")

(4)属性选择器:表达式:[attribute='value']

attribute 表示的是属性名称,value表示的是属性值,如果使用的是class属性,需要带上class的全部属性值

例子:driver.find_element(By.CSS_SELECTOR,"[id='userA']").send_keys("admin")

(5)层级选择器:

5.1:父子层级关系选择器:表达式: element1>element2

通过element1来找element2,并且element2是element1的直接子元素

例子:driver.find_element(By.CSS_SELECTOR,"#pa>#userA").send_keys("admin")

5.2:隔代层级关系选择器:表达式: element1 element2

通过element1来找element2, 并且element2是element1的后代元素

例子:driver.find_element(By.CSS_SELECTOR,"div #passwordA").send_keys("admin")

(6)CSS扩展:

6.1:input[type^='value'] input表示标签名称,type表示属性名称, value表示的文本内容

查找元素type属性值是以value开头的元素

例子:driver.find_element(By.CSS_SELECTOR,"input[name^='userA']").send_keys("admin")

6.2:input[type$='value'] input表示标签名称,type表示属性名称, value表示的文本内容

查找元素type属性值以value结尾的元素

例子:driver.find_element(By.CSS_SELECTOR,"input[name$='wordA']").send_keys("123456")

6.3:input[type*='value'] input表示标签名称,type表示属性名称, value表示的文本内容

查找元素type属性值包含value的元素

例子:driver.find_element(By.CSS_SELECTOR,"input[name*='elA']").send_keys("18512829605")

二、元素操作方法

1、.send_keys() # 输入方法

2、.click() # 点击方法

3、.clear() # 清空方法

#d导包
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
#实例化驱动对象
driver=webdriver.Chrome()
#打开浏览器
driver.get('file:///Users/hanpeng/Documents/%E5%AD%A6%E4%B9%A0/09%E3%80%81UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小鱼o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值