Web UI自动化测试基础——元素定位(一)

本篇文章整理了元素定位的基础知识——单个元素定位方式

一、单个元素定位方式简介

1. find_element_by_id

  通过元素的id属性进行定位。以百度首页为例,首先进入https://www.baidu.com,按F12进入开发人员页面,然后单击调试窗口的左上角的选择图标,然后选中百度搜索框,即可看到调试窗口对应所选元素的代码突出显示,如下图,可以看到百度搜索框的id为kw。

图1

2. find_element_by_name

  通过元素的name属性进行定位。如上图,百度搜索框的name为wd。

3. find_element_by_class_name

  通过元素的class属性进行定位。如图1所示,百度搜索框的class_name为s_ipt。

4. find_element_by_link_text

  通过超链接的文本内容进行定位。

5. find_element_by_partial_link_text

  同4,不过该方法是通过模糊方式进行定位的,即通过超链接的部分文本内容进行定位。

6. find_element_by_xpath

  通过元素的xpath路径表达式进行定位。如下图,选中突出显示的代码右键选择copy,选择复制元素的xpath,百度搜索框对应的xpath为//*[@id="kw"]。

图2

7. find_element_by_css_selector

  通过css选择器对元素进行定位。如上图,复制元素的selector,百度搜索框的css_selector为#kw。

8. find_element_by_tag_name

  通过元素的标签名进行定位。因为同一个页面中具有相同标签名的元素较多,所以不常用。

二、实例

复制代码
 1 # coding=utf-8
 2 
 3 import time
 4 
 5 from selenium import webdriver
 6 
 7 # 单个元素的多种定位方式
 8 
 9 # 创建driver实例
10 driver = webdriver.Chrome()
11 # 打开百度首页
12 driver.get('https://www.baidu.com/')
13 # 1.通过id属性进行定位
14 # driver.find_element_by_id('kw').send_keys('id')
15 # 2.通过name属性进行定位
16 # driver.find_element_by_name('wd').send_keys('name')
17 # 3.通过class属性进行定位
18 # driver.find_element_by_class_name('s_ipt').send_keys('class_name')
19 # 4.通过link_text进行定位
20 # driver.find_element_by_link_text('新闻').click()
21 # 5.通过部分超链接文本内容进行定位
22 # driver.find_element_by_partial_link_text('闻').click()
23 # 6.通过xpath进行定位
24 # driver.find_element_by_xpath('//*[@id="kw"]').send_keys('xpath')
25 # 7.通过css选择器进行定位
26 driver.find_element_by_css_selector('#kw').send_keys('css_selector')
27 # 定位'百度一下'按钮并点击
28 driver.find_element_by_id('su').click()
29 # 等待5s
30 time.sleep(5)
31 # 退出驱动程序并关闭浏览器
32 driver.quit()
View Code
复制代码

 

posted @   cnblogs_0  阅读(1945)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
点击右上角即可分享
微信分享提示