UI自动化学习笔记- Selenium元素定位及元素操作
一、元素定位
1. 如何进行元素定位?
元素定位就是通过元素的信息或元素层级结构来定位元素的
2.定位工具
浏览器开发者工具
3.元素定位方式
Selenium提供了八种定位元素方式
- id
- name
- class_name(使用元素的class属性定位)
- tag_name(标签名 <标签名 ..../>)
- link_text(定位超链接a标签)
- partial_link_text(定位超链接 a标签 模糊)
- xpath(基于元素路径)
- css(元素选择器)
3.1 id定位
说明:id定位就是通过元素的id属性来定位元素,HTML规定id属性在整个HTML文档中必须是唯一的
前提:元素有id属性
id一般情况下在当前页面中是唯一的
id定位方法
element = driver.find_element_by_id(id)
案例
需求:打开一个注册页 ,完成以下操作
- 使用id定位,输入用户名
- 使用id定位,输入密码
- 3秒后关闭浏览器窗口
案例解析:
# 导包
from selenium import webdriver
from time import sleep
# 获取浏览器对象
driver = webdriver.Chrome()
# 打开URL
# 注意:\反斜杠在python中是转义字符 r:修饰的字符串,如果字符串中有转义字符,不进行转义使用
url = 'http://confluence.huisaas.com/'
driver.get(url)
# 查找用户名元素
username = driver.find_element_by_id('os_username')
# 查找密码元素
password = driver.find_element_by_id('os_password')
# 用户名输入
username.send_keys('admin')
# 密码输入
password.send_keys('123456')
# 暂停3秒
sleep(3)
# 退出浏览器驱动
driver.quit()
3.2 name定位
说明:name定位就是根据元素name属性来定位。HTML文档中name的属性值是可以重复的
前提:元素有name属性
name定位方法
element = driver.find_element_by_name(name)
3.3 class_name定位
说明:class_name定位就是根据元素class属性值来定位元素。HTML通过使用class来定义元素的样式
前提:元素有class属性
注意:如果class有多个属性值,只能使用其中一个
class_name定位方法
element = driver.find_element_by_class_name(class_name)
3.4 tag_name定位
说明:tag_name定位就是通过标签名来定位
HTML本职就是由不同的tag组成,每一种标签一般在页面中会存在多个,所以不方便进行精准定位,一般很少使用
tag_name定位方法
element = driver.find_element_by_tag_name(tag_name)
# 如果存在多个相同标签,则返回符合条件的第一个标签
案列
需求:打开一个注册页 ,完成以下操作
- 使用tag_name定位,输入用户名
注意:页面中如果存在多个相同的标签名,默认返回第一个标签
案列解析
from selenium import webdriver
from time import sleep
# 获取浏览器对象
driver = webdriver.Chrome()
# 打开URL
url = 'http://confluence.huisaas.com/'
driver.get(url)
# 查找用户名元素,输入用户名
driver.find_element_by_tag_name('imput').send_keys('admin')
# 暂停3秒
sleep(3)
# 退出浏览器驱动
driver.quit()
3.5 link_text定位
说明:link_text定位是专门用来定位超链接元素(标签< /a>),并且是通过超链接的文本内容来定位元素
UI自动化学习笔记- Selenium元素定位及元素操作的更多相关文章
- UI自动化学习笔记- Selenium元素等待(强制等待、显示等待、隐式等待)
一.元素等待 1. 元素等待 1.1 什么是元素等待 概念:在定位页面元素时如果未找到,会在指定时间内一直等待的过程 意思就是:等待指定元素已被加载出来之后,我们才去定位该元素,就不会出现定位失败的现 ...
- UI自动化学习笔记- Selenium一些特殊操作的处理
一.特殊操作处理 1. 下拉选择框操作 1.1 如何操作下拉选择框 实现方式一 思路:先定位到要操作的option元素,然后执行点击操作 driver.find_element_by_css_sele ...
- UI自动化学习笔记- PO模型介绍和使用
一.PO模型 1.PO介绍:page(页面) object(对象) 在自动化中,Selenium 自动化测试中有一个名字经常被提及 PageObject (思想与面向对象的特征相同),通常PO 模型可 ...
- UI自动化学习笔记- UnitTest单元测试框架详解
一.UnitTest基本使用 1. UnitTest框架 1.1 什么是框架 说明: 框架英文单词frame 为解决一类事情的功能集合 1.2什么是UnitTest框架 概念:UnitTest是pyt ...
- UI自动化学习笔记- 日志相关操作
一.日志相关 1.日志 概念:日志就是用于记录系统运行时的信息,对一个事件的记录,也称log 1.1 日志的作用 调试程序 了解系统程序运行的情况,是否正常 系统程序运行故障分析与问题定位 用来做用户 ...
- Web自动化必会知识:「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」
1.web 基础-html.dom 对象.js 基本语法 Dom 对象里面涉及元素定位以及对元素的修改.因为对元素操作当中涉及的一些 js 操作,js 基本语法要会用.得要掌握前端的基本用法.为什么要 ...
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)
转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...
- selenium webdriver学习(四)------------定位页面元素(转)
selenium webdriver学习(四)------------定位页面元素 博客分类: Selenium-webdriver seleniumwebdriver定位页面元素findElemen ...
- python ui自动化之元素定位和常用操作
做ui自动化的最基础的就是页面元素定位了,如果连页面元素都定位不到,自动化从何谈起呢?接下来我们就看看页面元素定位的方法吧!(这里就用百度页面来进行演示) 一.最通用的几种定位方式: 1.通过id定位 ...
随机推荐
- fail to start File System Check
fail to start File System Check 方法A: 输入root的密码 cd /etc 1 vim /etc/fstab 将所有分区最后的数字 1和2 全都改为0 reboot ...
- (代替人类)很多操作都在Settings里面。 5.安装第三方库
2020-02-01 pycharm 使用教程 LingSmart关注 0.0842020.02.07 15:08:50字数 1,394阅读 680 实在无聊,就来学习吧.学习pycharm的使用教程 ...
- split命令_Linux split命令:切割(拆分)文件
<Linux就该这么学>是一本基于最新Linux系统编写的入门必读书籍,内容面向零基础读者,由浅入深渐进式教学,销量保持国内第一,年销售量预期超过10万本.点此免费在线阅读. 15 分钟之 ...
- 《SystemVerilog验证-测试平台编写指南》学习 - 第3章 过程语句和子程序
<SystemVerilog验证-测试平台编写指南>学习 - 第3章 过程语句和子程序 3.1 过程语句 3.2 任务.函数以及void函数 3.3 任务和函数概述 3.4 子程序参数 3 ...
- 030. Python装饰器
一 装饰器 1.1 装饰器介绍 扩展函数新功能的@定义:替换旧函数,返回新函数,在不改变原有代码的前提下,为该函数扩展新功能;语法:@ (语法糖) 1.2 装饰器的原型 def show(func) ...
- linux进阶之Tomcat服务篇
一.Tomcat简介 Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选. Tomca ...
- shell应用之下载rpm包
1 #!/bin/bash 2 read -p "选择下载老师的哪种源:(adv,base,cobbler,docker,mysql,mysql57,open,auto)" dow ...
- 11.11 ntsysv:管理开机服务
ntsysv命令提供了一种基于文本界面的菜单操作方式,以设置不同运行级别下的系统服务启动状态. -back 在交互界面里,显示Back按钮,而非Cancel按钮 -level 指定运行 ...
- KEIL中查看程序存储空间的大小
Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116 Code是代码占用的空间,RO-data是 Read Only 只读常 ...
- 技术干货 | 关于 WKWebview 网络拦截,你想知道的都在这里
原生 WKWebView 在独立于 app 进程之外的进程中执行网络请求,请求数据不经过主进程,因此在 WKWebView 上直接使用 NSURLProtocol 是无法拦截请求的. 但是由于 mPa ...