UI自动化必不可少的操作——元素定位

  • 8大基础定位
driver.find_element_by_id()   # id定位
driver.find_element_by_name() # name定位
driver.find_element_by_class_name() # class名称定位
driver.find_element_by_tag_name() # 标签定位
driver.find_element_by_xpath() # xpath定位
driver.find_element_by_css_selector() # css定位
driver.find_element_by_link_text() # a标签的文本定位
driver.find_element_by_partial_link_text() # a标签的局部文本定位
  • xpath定位

  //*[]:// 相对定位      * 匹配任意标签

  第一种:id\class\name\其他属性,精确匹配

driver.find_element_by_xpath("//*[@id='']")           # id与id的值
driver.find_element_by_xpath("//*[@class='']") # class和class的值
driver.find_element_by_xpath("//*[@name='']")     # naem和值
driver.find_element_by_xpath("//*[@shuxingming='']") # 属性名和值

  第二种:模糊匹配\层级\索引\逻辑运算

  模糊匹配:

driver.find_element_by_xpath("//*[contains(text(),'测试')]")     # 包含某些字符
driver.find_element_by_xpath("//*[starts-with(text(),'测试')]")   # 以某些字符开头
driver.find_element_by_xpath("//*[ends-with(text(),'测试')]")     # 以某些字符结尾
driver.find_element_by_xpath("//*[matchs(text(),'测试')]")      # 正则匹配

  层级:

driver.find_element_by_xpath("//*[@id='']/p")

  索引:

driver.find_element_by_xpath("//*[@id='']/option[0]")

  第三种:绝对定位

  html/body/heard/div/divdiv/ul/li[2]/a      不推荐

  • css定位

  第一种:id\class\标签名

#:id

.:class

driver.find_element_by_css_selector("#username")     #id为username
driver.find_element_by_css_selector(".username") #class为username
driver.find_element_by_css_selector("iframe") #标签名为iframe

 第二种:

索引:
driver.find_element_by_css_selector("selet#nr>option:nth-child(1)") #标签名:nth-child(1)来定位子元素
层级:
driver.find_element_by_css_selector("selet#nr>option") #标签名:nth-child(1)来定位子元素
逻辑运算:
driver.find_element_by_css_selector("input#nr[id=''][class='']") #不用and连接,写在一起即可
  • 定位多组元素

 使用 find_elements ,结果为列表,使用下标索引方式取值

names=driver.find_elements_by_name("username")
print names[1]

  

做一棵小草,谁也撼动不了………

如果您觉得本篇文章还不错,欢迎点赞,转发分享,感谢(*^_^*)

web自动化之定位的更多相关文章

  1. web自动化常用定位和方法总结

    一. driver常用方法 二. 常用定位 三. 元素在页面不可见区域 四. iframe的操作 五. 页面弹出框:加等待时间 六. windows弹出框 七. 鼠标操作 八. 下拉列表 注意:下图中 ...

  2. web自动化之元素定位篇

    一.web自动化元素定位的方式有8种.------腾讯课堂 1.1 id定位: 1.2 class定位: 1.3 classname定位 1.4 tag_name 1.5

  3. 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...

  4. Web自动化必会知识:「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」

    1.web 基础-html.dom 对象.js 基本语法 Dom 对象里面涉及元素定位以及对元素的修改.因为对元素操作当中涉及的一些 js 操作,js 基本语法要会用.得要掌握前端的基本用法.为什么要 ...

  5. 【WEB自动化测试之控件定位】基于HTML5控件的唯一控件属性定位

      一.WEB控件定位是什么 要想弄懂这个问题,我们还是基于实践来学习.我们先来看一条入门级别自动化测试用例的构成. DemoCase:正确用户名和密码登录博客园,登录成功 URL: https:// ...

  6. 【python+selenium的web自动化】- 8种元素定位方式详解

    ​ 我们在做WEB自动化时,最根本的就是操作页面上的各种元素,而操作的基础便是元素的定位,只有准确地定位到唯一元素才能进行后续的自动化控制,下面将对各种元素定位方式进行总结归纳. ​ 说明:以下操作统 ...

  7. Web自动化定位方法以及常用便捷操作

    很遗憾现在才开始给大家逐步分享自动化教程,原本计划着将现有的接口以及app.pc网页端进行自动化处理后再逐步给大家好好分享一下,由于当前实在没必要自动化操作了,所以临时用脑海中的知识再为大家继续更一篇 ...

  8. Selenium Web 自动化 - 项目实战(三)

    Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解  3.1 解析新增页面目录  3.2 解析新增测试用例目录  3. ...

  9. Web自动化框架LazyUI使用手册(1)--框架简介

    作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一 ...

随机推荐

  1. 介绍回流与重绘(Reflow & Repaint),以及如何进行优化?

    前言 回流与重绘对于前端来说可以说是非常重要的知识点了,我们不仅需要知道什么是回流与重绘,还需要知道如何进行优化.一个页面从加载到完成,首先是构建DOM树,然后根据DOM节点的几何属性形成render ...

  2. Java泛型详解,史上最全图文详解!

    泛型在java中有很重要的地位,无论是开源框架还是JDK源码都能看到它. 毫不夸张的说,泛型是通用设计上必不可少的元素,所以真正理解与正确使用泛型,是一门必修课. 一:泛型本质 Java 泛型(gen ...

  3. 利用shell为MobaXterm生成session模板

    文章目录 1.前言 2.导出MobaXterm的session模板 3.利用shell脚本生成.mxtsessions文件 4.导入到MobaXterm 5.效果图 1.前言 其实这是一件花里胡哨的事 ...

  4. CentOS7+Rsyslog+MySQL 搭建 Rsyslog 日志服务器

    文章目录 1.主机环境 2.rsyslog搭建 2.1.rsyslog-server搭建 2.2.rsyslog-client 2.2.1.测试 2.3.rsyslog日志分类 2.3.1.测试 3. ...

  5. dbTable

    标签: <my-Double-Table double-Table="doubleTable" head-List="headList" select-M ...

  6. 施耐德NOE77101后门漏洞分析

    固件下载地址: GitHub - ameng929/NOE77101_Firmware 文件目录结构,这里只列出了一些主要的文件信息: ├── bin ├── ftp ├── fw ├── rdt ├ ...

  7. python-logging日志模块,以及封装实现

    前言 是Python内置的标准模块,主要用于输出运行日志 基本语法 import logging # # logging模块默认设置的日志级别是warning,而debug和info的级别是低于war ...

  8. [题解]Codeforces Round #254 (Div. 2) B - DZY Loves Chemistry

    链接:http://codeforces.com/contest/445/problem/B 描述:n种药品,m个反应关系,按照一定顺序放进试管中.如果当前放入的药品与试管中的药品要反应,危险系数变为 ...

  9. 【C# 练习】通过ZoomGame这个案例加强对 反射 插件 特性的认识

    游戏情景设定: 有一个游戏机,里面出现几种动物让儿童选择.选择完动物后,在输入数值让动物叫几次. 动物类型以插件的形势存在,可以外包给其他人开发,并提供了开发接口AnimalTool.SDK.dll. ...

  10. 截图工具snipaste

    下载地址: https://zh.snipaste.com/download.html 使用: 按F1截图,截图后按F3悬浮