元素定位---自动化测试

  1. 元素定位
    1. 根据id属性进行定位(唯一的id)
    2. name属性进行定位
    3. tag name (标签名)定位和class name(标签中的class属性)定位
    (1)使用class name 定位搜狗搜索框
    (2)使用tag name(标签名进行定位)
    4. css 定位
    5. X-path 定位
    6. link text (全名)定位 和 Partial link text(部分名)定位(链接名称)
    (1)link text 定位
    (2)partial link text 定位

元素定位

因为使用selenium 进行自动化测试,我们首先要定位到元素的位置,然后通过指定事件才能进行之后的执行,所以我们现在来学习一下常用的定位方法;这里定位的方法与 html 和 css 的属性密切相关。

1:根据 id 属性进行定位

如果我们需要操作的元素有 id 属性,我们可以通过id进行定位。

在这里插入图片描述

#  从selenium中引入webdriver驱动
from selenium import webdriver
# 引入事件包(为了之后能够观察自动化测试)
import time
driver = webdriver.Chrome()
url = "https://www.baidu.com"
driver.get(url)
# 通过id定位百度输入框,send_keys是在输入框中填充内容
driver.find_element_by_id("kw").send_keys("牛客网")
time.sleep(5)
# 关闭浏览器
driver.quit()

2:name 属性进行定位

在这里插入图片描述

#  从selenium中引入webdriver驱动
from selenium import webdriver
# 引入事件包(为了之后能够观察自动化测试)
import time
driver = webdriver.Chrome()
url = "https://www.baidu.com"
driver.get(url)
 
driver.find_element_by_name("wd").send_keys("leetcode")
time.sleep(5)
# 关闭浏览器
driver.quit()

3:tag name (标签名)定位 和class name (标签中的class属性) 定位

(1)使用class name 定位搜狗 搜索框

from selenium import webdriver
import time
driver = webdriver.Chrome()
# 将窗口放到最大
driver.maximize_window()
driver.get("http://www.sogou.com")
# 定位搜素框并输入内容
driver.find_element_by_class_name("sec-input").send_keys("牛客网")
time.sleep(2)
driver.quit()

(2)使用 tag name(标签名进行定位)

在这里插入图片描述
注意:在使用这两种定位方式时需要在当前页没有重复出现,否则就会定位不到

4:css定位

使用css选择器来对元素进行定位,这里我们不需要自己去分析,只需要在浏览器上打开 开发者工具,然后定位到指定元素位置后,通过右键点击复制,然后复制 selecter 就可以了。

示例:通过 css 定位搜狗 搜索框

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://www.sogou.com")
# 定位搜素框并输入内容
driver.find_element_by_css_selector("#query").send_keys("牛客网")
time.sleep(3)
driver.quit()

5:X-path 定位
Xpath 是一种 在 Xml 文档中定位元素的语言,Xpath 扩展了上面 id 和 name 定位方式,提供了很多种可能性。通过X-path 也可以唯一定位一个元素。以Chrome 浏览器为例,F12 打开 开发者工具,定位到需要操作的元素(如 搜索框),然后右键鼠标,复制里面点击 Xpath即可。

通过X-path定位搜狗 搜索框

from selenium import webdriver
import time
driver = webdriver.Chrome()
# 将窗口放到最大
driver.maximize_window()
driver.get("http://www.sogou.com")
# 定位搜素框并输入内容
driver.find_element_by_xpath("//*[@id='query']").send_keys("牛客网")
time.sleep(2)
driver.quit()

6:link text (全名) 定位 和 Partial link text (部分名)定位(链接名称)

注意:这里的图片链接不能重复,重复也会定位不到

在这里插入图片描述
(1)link text 定位

from selenium import webdriver
import time
driver = webdriver.Chrome()
# 将窗口放到最大
driver.maximize_window()
driver.get("http://www.sogou.com")
# 定位链接全部文字并点击
driver.find_element_by_link_text("图片").click()
time.sleep(2)
driver.quit()

(2)partial link text 定位

from selenium import webdriver
import time
driver = webdriver.Chrome()
# 将窗口放到最大
driver.maximize_window()
driver.get("http://www.sogou.com")
# 定位链接b部分文字并点击
driver.find_element_by_partial_link_text("图").click()
time.sleep(2)
driver.quit()
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值