1、熟悉前端基础
 
  • 代码和元素是一一对应关系,程序需要通过代码中的某些特征,获取目标元素并进行操作
  • 标签名     key = value      元素的属性和属性值
 
2、浏览器开发者工具
 
  • 目的:获取目标元素在页面内代码的相关信息的时候使用

    ①点击鼠标右键 —— 检查

    ②按F12

 
3、八大元素定位方法:
  1. id(唯一的)
  2. name
  3. class_name
  4. tag_name
  5. link_text
  6. partial_link_text
  7. XPath(通用)
  8. CSS(通用)
 
① 元素定位方法—id方法
 
  id定位就是通过元素的id属性来定位元素,id必须是唯一的,前提:元素有id属性
  当元素存在id属性时,优先使用id方法定位元素
 
  id定位方法:
 
    element = driver.find_element_by_id(id)
 
需求:打开注册页面,完成以下操作
1、使用id定位,输入用户名:admin
2、使用id定位,输入密码:123456
3、3秒后关闭浏览器窗口
 
补充:输入内容方法:元素对象.send_keys("内容")
 
 
②元素定位方法—name方法
 
  name定位就是根据元素name属性来定位,name的属性值是可以重复的,前提:元素有name属性
 
  由于元素的name属性值可能存在重复,必须确定其能够代表目标元素唯一性之后,方可使用
 
  name定位方法:

      element = driver.find_element_by_name(name)
 
需求:打开注册页面,完成以下操作
1、使用name定位,输入用户名:admin
2、使用name定位,输入密码:123456
3、3秒后关闭浏览器窗口
 
注意:当页面内有多个元素的特征值是相同的时候,定位元素的方法执行时,默认只会获取第一个符合要求的特征对应的元素
因此,定位元素时需要尽量保证使用的特征值能够代表目标元素在当前页面的唯一性
 
查看元素属性数量:
  • 1、在代码区域使用快捷键 Ctrl + F
  • 2、输入目标元素属性值           回车查看数量
 
③元素定位方法—class_name方法
 
  class_name定位是根据元素class属性值来定位元素,class定义元素的样式
  前提:元素有class属性
  注意:如果class有多个属性值,只能使用其中的一个
 
  class_name定位方法
    
          element = driver.find_element_by_class_name(class_name)
 
需求:打开注册页面,完成以下操作
1、使用class_name定位,输入邮箱:34234234@qq.com
2、使用class_name定位,输入密码:2343243
3、3秒后关闭浏览器窗口
 
注意事项:
    1、方法名是class_name, 但要找的是元素的class属性值
    2、如果元素的class属性值存在多个值,只能使用其中的任意一个
 
 
④元素定位方法—tag_name方法
 
  tag_name就是通过标签名来定位
  每一种标签一般在页面中会存在多个,所以不方便进行精确定位,一般很少使用
 
  tag_name定位方法:
 
      element = driver.find_element_by_tag_name(tag_name)
 
需求:打开注册页面,完成以下操作
1、使用tag_name定位,输入用户名:admin
2、使用tag_name定位,输入密码:123456
3、3秒后关闭浏览器窗口
 
注意:由于标签名的重复性过高,一般做精确定位时,都不会选择tag_name
 
⑤元素定位方法—
1、link_text定位
2、link_partial_link_text定位
 
1、link_text定位:只针对超链接元素,并且需要出入超链接的全部文本信息
   方法:
 
      element = driver.find_element_by_link_text(link_text)
      link_text: 为超链接的全部文本内容


2、link_partial_link_text定位:只针对超链接元素,并且需要出入超链接的部分文本信息
  方法  :
 
     element = driver.find_element_by_partial_link_text(partial_link_text)
       link_text: 为超链接的部分文本内容
       虽然是只传入部分文本信息,但是需要确定其唯一性,方可以使用    
 
需求:打开注册页面,完成以下操作
1、使用link_text定位(访问 新浪、网站)超链接,并点击
2、3秒后关闭浏览器窗口
 
补充:点击方法:元素对象.clink()
 
 
 
 

web自动化02-常见元素定位(不含xpath和css)的更多相关文章

  1. 【WEB自动化】【第一节】【Xpath和CSS元素定位】

    目前自动化测试开始投入WEB测试,使用RF及其selenium库,模拟对WEB页面进行操作,此过程中首先面对的问题就是对WEB页面元素的定位,几乎所有的关键字都需要传入特定的WEB页面元素,因此掌握常 ...

  2. Selenium的WebDriver API元素定位中的XPath和CSS

    元素的定位和操作是自动化测试的核心部分,其中操作又是建立在定位的基础上的. 浏览器的常规操作 import time from selenium import webdriver # 打开浏览器 dr ...

  3. Selenium Web 自动化 - 如何找到元素

    Selenium Web 自动化 - 如何找到元素 2016-07-29 1. 什么是元素? 元素:http://www.w3school.com.cn/html/html_elements.asp ...

  4. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  5. appium自动化测试之UIautomatorviewer元素定位

    appium自动化测试之UIautomatorviewer元素定位 标签(空格分隔): uiautomatorviewer元素定位 前面的章节,已经总结了怎么搭建环境,怎样成功启动一个APP了,这里具 ...

  6. Web自动化 - 选择操作元素 2

    文章转自 白月黑羽教Python 前面我们看到了根据 id.class属性.tag名 选择元素. 如果我们要选择的 元素 没有id.class 属性, 这时候我们通常可以通过 CSS selector ...

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

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

  8. python+Appium自动化:H5元素定位

    问题思考 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 解决思路 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原 ...

  9. python+Appium自动化:id元素定位

    元素定位 与web自动化一样,app自动化元素定位也是非常重要的一环,,appium也是提供了很多元素定位的方法,比如:id.name.class.层级定位等等. 元素定位方式 id name cla ...

  10. 基于Selenium2+Java的UI自动化(3) - 页面元素定位

    一.几种网页定位方式 webdriver的页面定位很灵活,提供了8种定位方式: 其中,常见的有三种:id .cssSelector .xpath: 一个元素如果存在 id 属性,则这个 id 的值,在 ...

随机推荐

  1. MySQL学习(七)varchar和char区别

    varchar:用于存储可变长字符串,是最常见的字符串数据类型.比定长类型更节省空间,因为它仅使用必要的空间.varchar需要使用1或2个额外字节记录字符串的长度:如果列的最大长度小于或等于255字 ...

  2. 【读书笔记】格子路径计数LatticePathEnumeration 学一半的笔记

    流水账流水账这篇什么都不是 目录 方法 10.2 Lattice paths without restrictions 无限制格子路径 2维的例子,从(a,b)到(c,d),允许(0,1)和(1,0) ...

  3. IntelliJ IDEA 下载安装及配置使用教程(图文步骤详解)

    前言 壹哥在前面的文章中,带大家下载.安装.配置了Eclipse这个更好用的IDE开发工具,并教会了大家如何在Eclipse中进行项目的创建和代码编写.运行.但是实际上,在各种IDE开发工具中,Ecl ...

  4. 记一次在forEach中使用aynac/await中的坑

    1.背景 在写一个对齐脚本时 发现下列问题 const timeList = await imageList.map( (item,index)=>{ return item.identify_ ...

  5. 明解STM32—GPIO理论基础知识篇之寄存器原理

    ​ 一.前言 在之前的STM32的GPIO理论基础知识中,分别对基本结构和工作模式进行了详细的介绍.GPIO基本结构中主要对GPIO内部的各个功能电路逐一的进行的分析:GPIO工作模式中主要介绍GPI ...

  6. R语言文本挖掘细胞词库的转换

    搜狗细胞词库解析 一. 加载R包转换 library(rJava) library(Rwordseg) write.csv(as.data.frame(importSogouScel('wuliu.s ...

  7. python调用打印机打印文件,图片,pdf等

    引言 python连接打印机进行打印,可能根据需求的不同,使用不同的函数模块. 如果你只是简单的想打印文档,比如office文档,你可以使用ShellExecute方法,对于微软office的文档.p ...

  8. [Java/Arthas]Arthas The telnet port 3658 is used by process 13988 instead of target process 11208, y[转载]

    1 问题描述 Arthas 跟踪 一个已经在tomcat部署的工程quality,第一次使用过的是135091号进程,后来出现问题,换进程连接,报错如上图所示,提示端口占用.原因是上次连接了一个进程, ...

  9. CLion在工程中添加目录&新文件

    1.将新建文件夹添加到cmake.txt文件里 include_directories(Core/新建文件夹 Core/UserInc Drivers/STM32L4xx_HAL_Driver/Inc ...

  10. Qt5.9 UI设计(七)——统一样式设计

    前言 前面已经将UI设计部分实现,各页面也做了最简单的设计,本章介绍一下qss样式的使用.样式设计最终的显示效果如下图: 操作步骤 将stylesheet.qss 样式文件添加进工程 styleshe ...