[-002-]-Python3+Unittest+Selenium Web UI自动化测试之定位元素(包括父子,兄弟)及常见操作

1、常见的定位方式

id定位:find_element_by_id()
name定位:find_element_by_name()
class定位:find_element_by_class_name()
link定位:find_element_by_link_text()
partial link定位:find_element_by_partial_link_text()
tag定位:find_element_by_tag_name()
xpath定位:find_element_by_xpath()
css定位:find_element_by_css_selector()

2、xpath定位

2.1 普通的xpath定位

driver.find_element_by_xpath("xpath路径")

2.2 通过id的方式获取到的xpath

# 通过id='FormListId'进行定位
driver.find_element_by_xpath("//*[@id='FormListId']")

2.3 通过placeholder属性获取到的xpath

# 定位placeholder属性为"请搜索"的input元素,即<input placeholder="请搜索">
driver.find_element_by_xpath("//input[@placeholder='请搜索']")

2.4 通过id属性所在元素的下一个元素获取的xpath

# 定位id="formid"元素-下层元素span-下层元素第二个input
driver.find_element_by_xpath("//*[@id='formid']/span/input[1]")

2.5 多条件定位xpath

# 多条件定位
driver.find_element_by_xpath("//input[@name='urd' and @value='psd']")

2.6 根据文本定位xpath

# 根据文本定位元素
driver.find_element_by_xpath("//li[text()="姓名:"]")

2.7 根据关键词定位xpath

# 根据关键字
driver.find_element_by_xpath("//a[contains(@href,"aaa")]")

2.8 文本包含 苹果 内容

#在a标签下有个文本(text)包含(contains)'苹果' 的元素
driver.find_element_by_xpath("//a[contains(text(),'苹果')]")

2.9 根据href定位元素xpath

#a的标签,链接href='http://www.baidu.com/ 的元素
driver.find_element_by_xpath("//a[@href='http://www.baidu.com/']")

 3、xpath高级的定位写法(父子、兄弟节点定位)

3.1 根据兄节点定位弟节点

# 通过兄节点找到父节点,由父节点定位弟节点
driver.find_element_by_xpath("//*[text()='PPT模板']/../span[1]")
# following-sibling 选取当前节点之后的同级节点
driver.find_element_by_xpath("//*[text()='PPT模板']/following-sibling::div")

3.2 根据父节点定位子节点

driver.find_element_by_xpath("//*[@id='用途']/div[1]/span")
# child::input选取当前节点的input子节点
driver.find_element_by_xpath("//*[@id='用途']/child::div[1]/child::span")

3.3 根据子节点定位父节点

# ..表示父节点
driver.find_element_by_xpath("//*[text()='总结报告']/../../div")
# parent::span选取当前节点的span父节点
driver.find_element_by_xpath("//div[text()='总结报告']/parent::div/parent::div")

3.4 根据弟节点定位兄节点

# 通过弟节点找到父节点,由父节点定位兄节点
driver.find_element_by_xpath("//*[text()='总结报告']/../../div[0]")
# preceding-sibling 选取当前节点之前的同级节点
driver.find_element_by_xpath("//*[text()='总结报告']/parent::div/preceding-sibling::div")

4、对元素的操作

点击:click() 

driver.find_element_by_id("id).click()

输入内容,send_keys()

driver.find_element_by_id(id).send_keys(text)

获取元素上的文本 text

driver.find_element_by_id(id).text

清空输入框中的文本

driver.find_element_by_id(id).clear()

获取元素的属性

driver.find_element_by_id("id").get_attribute("value")

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值