web自动化测试核心内容:

  • 元素定位
  • 网页操作
  • 等待
  • pytest + selenium
  • 项目实战

1.为什么要元素定位 

元素定位是为了操作浏览器,如输入内容,点击按钮等,就是手工做的,自动化都可以做

2.自动化去查找元素的方法

  1. 网页的页面结构(selenium),优点是兼容性强,只要结构不变就能找到,不管屏幕大小的改变还是像素的改变都不会影响
  2. 坐标(像素 x,y,airtest),缺点:当浏览器窗口放大或缩小的坐标会发生变化
  3. 图像识别(把输入框或按钮先截图下来,然后拿着图片来对照找,airtest),缺点:当浏览器放大或缩小后,可能截图识别不出来,还有图片占用CUP很多,处理速度要慢

3.什么是页面结构:

页面结构是由各种各样的网页标签构成,形成很复杂的树形结构,由标签、属性、text文本构成

4.find_element 和 find_elements 的区别

find_element 如果找到多个元素,只会返回第一个,如果没有找到,就会报错

find_elements 如果找到多个元素,都会存在列表当中,如果没有找到,不会报错

如果通过某各方式找到了多个元素,需要进一步去筛选,加条件,通过xpath来实现

from selenium import webdriver
import timeclass TestDeom:def test_01(self):with webdriver.Chrome() as browser:browser.get('http://baidu.com/')# 找到多个元素后,只会返回第一个,没有找到会报错el = browser.find_element('name', 'wd')# elements是找到多个元素,打印出来是个列表,没有找到不会报错els = browser.find_elements('name', 'wd')print(els)

运行结果:

5.selenium支持的元素定位方式(八大元素定位方式)

  • id(通常是唯一的,有id的优先用id)
  • name  <input>
  • class_name (用的很多,因为页面样式用的比较多)
  • tag_name (基本不用)
  • link_text (链接文本)只能用在<a>标签内
  • partial_link_text(部分链接文本)只能用在<a>标签内
  • xpath(组合前面六种方式)
  • css_selector

使用pychram进行编写HTML:

在pycharm中也可以直接新建HTML文件,进行编写,步骤如下:

选择要新建的位置,右击选择【HTML File】

还可以选择HTML的版本

新建完以后,显示固定的内容,然后可以去编写代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>py44</title>
</head>
<body>hello python
</body>
</html>

运行结果:(使用pychram运行)

还可以不使用pycharm运行,直接去对应的目录下,选择打开方式

HTML标签与属性介绍:

  • 每个标签都有自己的独特的能力
  • 标签中通过属性也可以获取某种能力

<input > 输入框

<h2> 2级标题

<div>块级元素

<a>标签定义超链接

<img>插入图片

<checkbox>  复选框

<radio> 单选框

<id> 规定 HTML 元素的唯一的 id

<name>用于指定锚(anchor)的名称

<form>属性值写到接口中

<table> 表格

<ul>标签定义无序列表

<iframe>插入子网页

当未设置value属性时,点击提交按钮的结果如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>py44</title>
</head>
<body>
<!--    标题-->
<h2>登录</h2>
<!--把输入与选择的内容写到接口中-->
<form action="http://httpbin.org/post" method="post"><!--    输入用户名--><div>用户名:<input name="username"></div><!--    输入密码--><div>密 码:<input type="password" name="pwd"></div><!--    单选框--><div>性 别:<input type="radio" name="gender" value="man">男<input type="radio" name="gender" value="female">女</div><div>喜欢的电影:<input type="checkbox" name="movie" value="father">我和我的父辈<input type="checkbox" name="movie" value="changjinhu">长津湖<input type="checkbox" name="movie" value="jishengchu">寄生虫</div><!--    上传文件--><div><input type="file" name="file"></div><!--    提交--><div><input type="submit"></div><!--    链接(可以是图片,也可以是文字)--><a href="http://baidu.com">点击注册<br><img src="2.png" width="260px" height="100px"></a><br><!--    子网页--><iframe src="http://testingpai.com" width="800px" height="600px"></iframe>
</form>
</body>
</html>

总结:

  • 这就是前端跟后端的交互,通过value属性把值传给接口
  • name后面的值,可以自己随意编写,只要见名知意即可,name相同代表是一组内容:如性别跟电影两组内容
  • <img>标签可以嵌套在<a>标签内,这样点击图片就可以跳转链接了

web页面-元素定位相关推荐

  1. java实现页面高效刷新_selenium高效应对Web页面元素刷新的实例讲解

    当我们在页面上进行selenium.type()或者selenium.click()操作的时候,往往需要需要等待一个元素的出现,对于一般的网页,当我们进入一个新页面的时候,往往会使用selenium. ...

  2. Appium 自动化测试 H5页面元素定位

    简介   在现在的移动端App中,由于开发效率.需求频繁变更的需求情况下,经常有相关的运营需求,经常要进行更新,如果全部采用原生开发,需要的成本比较高,后来就出现了内嵌的H5页面.那么这些H5页面元素 ...

  3. 自动化html定位视频教程,web自动化——元素定位

    我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素. 元素定位的8种方法: id.name.class.tag.link.partail_link.x ...

  4. css定位页面元素,页面元素定位-CSS元素基本定位

    基本定位 """属性定位 一 """ # #通过id # driver.find_element_by_css_selector(" ...

  5. 对Web页面元素的绝对唯一引用方法

    我们知道要在Web页面中引用一个HTML元素,最简单的方法就是使用getElementById方法,或其类似的一组getElementsByXxx方法.可是这里需要注意的是,这些方法其实都不能完全绝对 ...

  6. java 获取页面元素的位置_Selenium Java 页面元素定位2

    一.操作目的 1.1 自动化测试常用操作 1.定位网页上的元素,并存储到一个变量中: 2.对变量进行操作,比如点击或输入文字: 3.设定页面元素的操作值: 二.定位方法汇总 2.1 findEleme ...

  7. web页面 float定位导致“溢出现象”处理

    2019独角兽企业重金招聘Python工程师标准>>> <ul><li>菜单一</li><li>菜单二</li><l ...

  8. Appium常用操作及H5页面元素定位

    目录 1.去登录考研帮系统 2.高级手势操作 1.tap() 2.移动 move_to 3.滑屏操作 3.多点触控 multiAction 4.原生嵌套H5 1.去登录考研帮系统 import tim ...

  9. (转)selenium页面元素定位八大方法_琉璃

    2019独角兽企业重金招聘Python工程师标准>>> 转自:https://www.cnblogs.com/qingchunjun/p/4208159.html 在使用seleni ...

最新文章

  1. 实现一个全链路监控平台很难吗?一点都不难。。。
  2. Google AI 研发医疗新模型,预测死亡率比医院高出10%
  3. python django -5 进阶
  4. Oracle 数据类型及存储方式(袁光东 原创)
  5. 海外服务器搭建网站访问很慢,海外服务器访问速度变慢了怎么办
  6. 关闭uboot MMU 会导致android2.3 S5pv210 系统不稳定?!why
  7. JDBC学习笔记(7)——事务的隔离级别批量处理
  8. MyBatis源码解析(十二)——binding绑定模块之MapperRegisty
  9. CentOS7 安装git服务器
  10. php content type,PHP Content-type 的说明
  11. tuxedo服务端访问oracle,tuxedo9.1与oracle10g互联
  12. iPhone/iPad/Android UI尺寸规范 手机尺寸
  13. Python OpenCV 物体识别
  14. 世 界 上 最 经 典 的 25 句 话 (带卡通图说明)
  15. image caption笔记(八):《From Captions to Visual Concepts and Back》
  16. OpenCV实战(12)——图像滤波详解
  17. 【Linux网络编程】网络基础知识
  18. 疫情放开,新冠防治药推荐,中医治疫病的准则
  19. css溢出部分用省略号代替
  20. 简单逆向分析使用案例(2)--CrackMe_01.exe 找出密码

热门文章

  1. 超赞 | 从写简历到面试,这是一份AI公司应聘全面指南
  2. JAVA_默认生成的文件在哪个文件夹?
  3. 【电商运营】教你这几招,告别无效预设回复
  4. 【Linux 中国】在《毁灭战士》中应用二叉空间分割(BSP)是何等天才之举?
  5. TKinter Radiobutton
  6. excel不显示0_表格0值太多,看起来不够美观简洁,只需这么做1分钟将0值隐藏掉...
  7. 南京工业大学2023数据结构复习题简析【编程题5】
  8. MySQL数据库技术 第二版 章末 答案—单元8
  9. taobao.trade.memo.update淘宝店铺订单交易备注修改接口(店铺订单插旗接口,店铺订单交易接口,店铺订单明文接口,店铺订单解密接口)代码对接教程
  10. 中国牛人自制直升机,视频!仅花2万RMB!