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. 干货 | BitSail Connector 开发详解系列一:Source

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 BitSail 是字节跳动自研的数据集成产品,支持多种异构数据源间的数据同步,并提供离线.实时.全量.增量场景下全 ...

  2. MySQL8.0 的新特性

    一.优化器索引 [1] 隐藏索引(invisible index):在 MySQL 8.0 中,索引可以被"隐藏"和"显示".当对索引进行隐藏时,它不会被查询优 ...

  3. Windows10一劳永逸的禁止更新/恢复更新

    之前发表过一篇文章Windows10彻底关闭自动更新,这篇文章相对复杂了些.而且还是有一定几率会触发从而自动打开更新.下面讲的就是怎么一次性永久关闭更新,即使触发了更新,也不能下载更新,从而达到真正的 ...

  4. Linux报错:audit: backlog limit exceeded(审计:超出积压限制)

    Linux报错:audit: backlog limit exceeded(审计:超出积压限制) 系统版本:CentOS Linux release 7.6.1810 (Core) 问题现象:一次巡检 ...

  5. webpack踩坑日记

    webpack 4.x 详细入门这是一个大佬的总结,但是我用webpack5重写该demo时,发现了几个有问题的地方1:CleanWebpackPlugin 应该这样: const { CleanWe ...

  6. Java中使用List的add方法后元素相同问题

    在写JavaWeb时,我在后端通过JDBC读取了数据后逐个使用List.add()方法添加元素并通过request方法传给jsp页面解析,但是添加以后出现了在列表里有n个(假设添加了n个元素)最后一个 ...

  7. .net6的IIS发布部署

    1.打开控制面板,打开程序 2.点击启动或关闭windows功能 3.在其中选择要设置的IIS功能 4.重启IIS服务 5.发布项目 6.在开始菜单搜索IIS,点击IIS管理器 7.右击网站,点击添加 ...

  8. 在线编写Markdown

    部署 editor.md 实现在线编写MD 安装Nginx服务 apt install nginx yum install nginx 修改Nginx配置 root@cby:~# vim /etc/n ...

  9. Proxmox VE镜像分析与定制

    Proxmox VE(Proxmox Virtual Environment,简称PVE)是一个开源的服务器虚拟化环境Linux发行版,基于Debian,使用给予Ubuntu的定制内核.相比于其他虚拟 ...

  10. SpringIOC注入

    在lagou的训练营的学习历程 SpringIOC实例化Bean的三种方式:1.使用无参构造器2.静态方法3.实例化方法.他要先实例化创建类(和2的区别),再调用. XML注入属性DI依赖注入,根据实 ...