web自动化测试核心内容:

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

本节内容主要讲元素定位

1.为什么要进行元素定位?

操作元素

2.selenium如何进行定位元素?

自动化去查找元素的方法:

  • 网页的页面结构(F12查找,selenium在用的查找方法)
  • 坐标,受页面大小影响,selenium不支持
  • 图像识别,消耗CPU资源但酷炫,实用性不高,selenium不支持

网页的页面结构:由各种各样的网页标签<>构成,形成很复杂的树形结构。

标签组成:

  • 标签名
  • 标签属性
  • text文本

<span class="soutu-hover-tip" style="display: none;">按图片搜索</span>

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

find_elements:如果查到多个元素,则以列表形式返回,没有找到,也不会报错,返回空列表。

from selenium import webdriverclass TestDemo:def test_01(self):with webdriver.Chrome(executable_path='chromedriver96.exe') as browser:# browser.service.browser.get("http://www.baidu.com")# 先找到输入框, 元素定位# el = browser.find_element('id', 'kw')# 想直接获取所有的元素,返回列表elements = browser.find_elements('name', 'wd')print(elements)

运行结果:

3.元素定位方式(8大元素)

  • id,唯一的,但不一定每个元素都有id,如果有id,就优先使用id;
  • name,元素的名称,<input>标签基本都有name属性;
  • class_name,元素的类名,样式,只能是一个class的值;
  • tag_name ,标签,不推荐,重复率太高;
  • link_text,文本链接,a元素的文本内容;
  • partial_link_text,对文本链接的一种补充,a元素的部分文本内容;
  • xpath,相对/绝对路径;
  • css_selector,css选择器;

4.html

每个标签都有自己独特的能力,比如<input>代表输入框

标签中通过属性也可以获取某种能力,比如<input type="">

常用标签:

  • input,输入框
  • h2,设置标题,h1~h6
  • div,层,可实现换行
  • a,超链接,通过href定义要跳转链接网址
  • img,通过src属性获取图片
  • checkbox radio,输入方式,通过设置input的type属性值得到
  • id,元素id
  • name,元素名称
  • form,表单,专门去制造form表单,提交后会将数据传入到属性action定义的后台服务中,method定义接口请求方法,向接口传递参数时,需要给各标签定义属性value(非手工输入的输入方式,比如radio)
  • ul,列表
  • iframe,内嵌
<!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><!--单选框,name值一致才可以是同一系列实现单选--><div>性别:<input type="radio" name="gender" value="male">男<input type="radio" name="gender" value="female">女<input type="radio" name="gender" value="unknown">未知<!-- 这是另一个选择器--><input type="radio" name="aaa">男女</div><div>喜欢的电影:<input type="checkbox" name="movie" value="zhanlang">战狼<input type="checkbox" name="movie" value="honghai">红海行动<input type="checkbox" name="movie" value="shuofu">说服</div><div>上传文件:<input type="file" name="avatar"></div><!--提交--><div><input type="submit"></div>
</form>
<!--点击图片跳转到百度-->
<div>
<a href="http://www.baidu.com"><img src="click_picture.png" width="600px" height="160px">
</a>
</div>
<iframe src="http://www.testingpai.com" width="800px" height="600px"></iframe>
</body>
</html>

在浏览器中打开该html效果图:

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

  1. web页面-元素定位

    web自动化测试核心内容: 元素定位 网页操作 等待 pytest + selenium 项目实战 1.为什么要元素定位  元素定位是为了操作浏览器,如输入内容,点击按钮等,就是手工做的,自动化都可以 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. [转载] 杜拉拉升职记——30 我保证以后一直对你好
  2. 《Linux内核设计与实现》读书笔记 第一章 Linux内核简介
  3. 安装多个mysql实例(debian版本)
  4. BestCoder Round #66 (div.2)B GTW likes gt
  5. txt转excel,添加数据库
  6. 5G 商用第三年:无人驾驶的“上山”与“下海”
  7. Flutter与RN
  8. 如何改变图片尺寸?怎么调整图片大小?
  9. DAO、DTO、PO、POJO、BO、VO、AO基本概念
  10. java word合并单元格_java使用freemarker模板导出word(带有合并单元格)文档
  11. java 持久监听blockqueue的变化_Curator目录监听
  12. 简单实用的电梯停电报警电路_光电报警电子电路图讲解
  13. 【数论】——Catalan 卡特兰数
  14. 4-20mA无源两线制温度热电阻环路供电信号变送器
  15. 史上最简SLAM零基础解读(6) - 卡方分布(chi-square distribution)和()卡方检验(Chi-Squared Test) → 理论讲解与推导
  16. 详解惠普webOS官方教程 如何下载安装SDK和PDK(1)
  17. android设备udid,Android下获取设备唯一标识(UDID, DeviceID...)
  18. 苏州,下一个智能汽车行业的“博世“之城
  19. 通达OA系统2019版流程中心,外部表单提交数据到指定流程第一步
  20. 看懂SoftMax回归算法之代价函数求偏导的数学推导——机器学习笔记(12)

热门文章

  1. combobox去除下拉框某一项值
  2. sql 后台运行远程服务器,在SQLServer中通过.NET远程的执行SQL文件
  3. 案例分析|视频网站如何实现智能选路
  4. 2022-4-2考试
  5. Awstats安装配置
  6. 互动投影技术解决方案
  7. 在一连串英语单词中输出每个英语单词最后一个字母
  8. C51---16 AD/DA 模拟数字转换
  9. 全新PD3.1 EPR 协议芯片HUSB362,支持140W(28V5A)+多口快充
  10. java小案例(适合初学者)-银行系统的存款收款转账等功能代码