selenium 元素定位

本文详细介绍了Selenium在自动化测试中如何进行元素定位,包括ID定位、Name定位、Classname定位、特殊情况处理以及文本和XPath定位。通过实例解析每个定位方法的使用场景和注意事项,强调了拆分步骤(定位元素、操作元素、断言)的重要性。
摘要由CSDN通过智能技术生成

定位就是通过规则找到html元素,这种场景在我们的生活中随处可见。比如顾客必须通过菜单来准确的告诉米其林自己需要什么菜品。

 在实际自动化中我们操作 html元素(主要是操作标签:input ,a,button等等),就需要通过selenium 提供的api 来定位。

现在,针对搜索百度这个场景来编写自动化的用例,拆分出来的步骤如下:

1   定位输入框                     //涉及到定位

2   输入要搜索的内容

3   定位“百度一下”按钮         //涉及到定位

4   点击按钮

5   断言

在实际编写自动化用例时,大家也一定要记得拆分:定位元素->操作元素->断言。

 ID 定位

通过查看html标签,我们看到 该标题有 class, id, name 属性,所以我们优先使用id 进行定位,代码如下

from selenium import webdriver
# 引入定位 
from selenium.webdriver.common.by import By 
import time

driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
time.sleep(2)
# 定位元素,定位方法 find_element
input_element=driver.find_element(By.ID,'kw')
# 操作元素
input_element.send_keys('刘德华')
time.sleep(2)
driver.quit()

前提:通过id 定位元素,前提是该元素存在id 属性。

Name 定位

还是定位 该输入框,使用name 进行定位

前提:通过name 定位元素,前提是该元素存在id 属性。

from selenium import webdriver
# 引入定位 
from selenium.webdriver.common.by import By 
import time

driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
time.sleep(2)
# 定位元素,定位方法 find_element
input_element=driver.find_element(By.NAME,'wd')
# 操作元素
input_element.send_keys('刘德华')
time.sleep(2)
driver.quit()

 classname定位

还是定位 输入框

from selenium import webdriver
# 引入定位 
from selenium.webdriver.common.by import By 
import time

driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
time.sleep(2)
# 定位元素,定位方法 find_element
input_element=driver.find_element(By.CLASS_NAME,'s_ipt')
# 操作元素
input_element.send_keys('刘德华')
time.sleep(2)
driver.quit()

特殊情况

现在有一个需求,要求点击新闻链接,验证是否可以正常打开网页。

现在这几个标签使用了相同的 class 属性,这时通过class='mav'定位到的是多个,就不能使用class 来定位.必须使用其他的方式。一个班里有几个同名的同学,老师喊 mav,这几个同名的都会站起来。

文本 定位

就是指 a 标签中间的文本元素,<a>文本内容</a>  这个文本内容就是 selenium 文本定位需要用到的。同样需要考虑实际存在不存在。

driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
time.sleep(2)
# 定位元素,定位方法 find_element
input_element=driver.find_element(By.LINK_TEXT,'新闻')
# 操作元素
input_element.click()
time.sleep(2)
driver.quit()

xpath 定位

driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
time.sleep(2)
# 定位元素,定位方法 find_element
input_element=driver.find_element(By.XPATH,'//*[@id="kw"]')

# 操作元素
input_element.send_keys('刘德华')
button_element=driver.find_element(By.XPATH,'//input[@id="su"]')
button_element.click()
time.sleep(3)
driver.quit()

可以直接 右键复制。

这些是就是常用的定位方式。xpath 单独用一章来解释。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值