目录

1 什么样的项目适合做自动化:

2 自动化测试的介入点:

3 python +selenium环境搭建

4 八大定位方法:

4.1  id:元素的id是当前整个HTML页面中唯一的,是首选的(动态变化的id不做考虑)

4.2 name:会有重复name的情况,概率不高。不是唯一的

4.3 class_name:class主要用于元素进行分组,并对这一级元素设置相同的样式,所以class属性在当前html页面当中,也不是唯一定位到一个元素的,class的属性只有一个值

4.4 tag_name:元素的标签名称,如input、div、span等

4.5 link_text:用于链接a标签的 - 精准匹配

4.6  partial_link_text:用于链接a标签的, 匹配部分文本值 - 模糊匹配

4.7 css:通过组合的方式进行定位,和XPATH定位方式基本相同。-- 晦涩难懂

4.8 Xpath定位: - 语法好懂 - F12下elements当中,按ctrl+f 弹出表达式确认框


1 什么样的项目适合做自动化:

1 )软件需求变更不频繁

2 )项目周期比较长

3 )成熟稳定的项目,自动化脚本可以重复利用

2 自动化测试的介入点:

系统测试, 可行性分析 框架选择,需求分析,计划,测试用例设计,无人值守,提交报考,运行维护

3 python +selenium环境搭建

1)python 环境的安装与搭建

2)  pycharm 的安装

3) 解决pyCharm无法通过pip安装selenium问题

4 八大定位方法:

其中
6大定位方法:
id、name、 class_name、 tag_name、 link_text、 partial_link_text
只根据元素的一个属性来定位,要求页面的元素非常标准

2大定位方法:万能定位
css_selector、xpath
多个属性组合来找元素,或者通过其他的关系来找元素

4.1  id:元素的id是当前整个HTML页面中唯一的,是首选的(动态变化的id不做考虑)

from selenium import webdriverdriver = webdriver.Chrome()
driver.get("http://www.baidu.com")
# 搜索输入框
element = driver.find_element_by_id("kw") # WebElement对象-- 一个对象对应一个元素
element.send_keys("selenium webdriver")

from selenium import webdriver
from selenium.webdriver.common.by import Bydriver = webdriver.Chrome()
driver.get("http://www.baidu.com")
# 搜索输入框
element = driver.find_element_by(By.ID, "kw") # WebElement对象-- 一个对象对应一个元素
element.send_keys("selenium webdriver")

4.2 name:会有重复name的情况,概率不高。不是唯一的

driver.find_element_by_name("")
driver.find_element(By.NAME, "")

4.3 class_name:class主要用于元素进行分组,并对这一级元素设置相同的样式,所以class属性在当前html页面当中,也不是唯一定位到一个元素的,class的属性只有一个值

driver.find_element_by_class_name("")
driver.find_element(By.CLASS_NAME, "")

4.4 tag_name:元素的标签名称,如input、div、span等

driver.find_element_tag_name("")
driver.find_element(By.TAG_NAME, "")

4.5 link_text:用于链接a标签的 - 精准匹配

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
# driver.find_element_link_text("新闻")
# 定位百度首页新闻并点击
driver.find_element(By.LINK_TEXT, "新闻").click()

4.6  partial_link_text:用于链接a标签的, 匹配部分文本值 - 模糊匹配

driver.find_element_paritial_link_text("闻")
driver.find_element(By.PARITIAL_LINK_TEXT, "闻")

4.7 css:通过组合的方式进行定位,和XPATH定位方式基本相同。-- 晦涩难懂

driver.find_element_by_css_selector(css表达式)
driver.find_element(By.CSS_SELECTOR, "")

4.8 Xpath定位: - 语法好懂 - F12下elements当中,按ctrl+f 弹出表达式确认框

1.绝对定位(一般不用,动态变化的会出错)—以/开头,父/子

/html/body/div[1]/div[1]/div/div[1]/div/form/span[1]/input 继承顺序:位置顺序
2.相对定位 不用考虑继承位置顺序,靠自己的特征定位,不在乎在哪–以//开头

1.//标签名[@属性=值]
//*[@*="wrapper"]    # 只要有一个属性的值满足这个就可以用*2.文本匹配
//标签名[text()=值]  # 要求唯一值3.包含 模糊匹配
//标签名[contains(@属性/text(),值)]4.逻辑运算 来组合更多的元素特征 and or
//标签名[@属性=值 and @属性=值 and contains(@属性,值) and text()=值]5.层级定位 //一级元素//二级元素//....
出现表格一样的东西的时候会用 //class[@id="wrapper"]//input[@id="kw"]6.轴定位:关系 - 需要分析元素之间的关系。页面的结构
轴运算:
ancestor:祖先节点,包括父
parent:父节点
preceding:当前元素节点标签之前的所有节点,html页面先后顺序
preceding-sibling:当前元素节点标签之前的所有兄弟节点
following:当前元素节点标签之后的所有节点,html页面先后顺序
following-sibling:当前元素节点标签之后的所有兄弟节点
使用语法:
已知的元素/轴名称::标签名称[@属性=值]1).通过兄弟姐妹找到自己2).通过后代元素来找到祖先元素
//p[@title="标题"]/following-sibling::p[@class="stuno"]
//p[@title="标题"]/following-sibling::* 后面的所有兄弟姐妹--加[1]为下标
//p[@title="标题1"]/parent::*/following-sibling::li//p[@class="name"]7.下标/js
有时候下标会失效,分析发现,使用下标要注意节点分支  可以用element + 下标
/html/body/div[4]/div[1]/div[1]/div[1]/div[3]/div/a
/html/body/div[4]/div[1]/div[2]/div[1]/div[3]/div/a
/html/body/div[4]/div[1]/div[3]/div[1]/div[3]/div/a
可以发现div其中一个节点分了3个分支。

web UI 自动化测试相关推荐

  1. WEB UI自动化测试框架搭建(一)_公用方法Utils

    本栏目内的所有项目使用的都是PyCharm 2020.1专业版,可以下载后自行在网上找教程破解. WEB UI自动化测试框架搭建(一)~(七)源代码:https://download.csdn.net ...

  2. Web UI自动化测试系统设计

    Web UI自动化测试系统设计 1. 自动化测试简介 1.1 什么是好的自动化测试框架 在创建测试自动化框架时,我们应该考虑以下要点: 能够通过使用适当的抽象层快速创建自动化测试 应易于维护和扩展应该 ...

  3. Web UI 自动化测试框架 seldom

    基于 selenium 和 unittest 的 Web UI自动化测试框架. 特点 提供更加简单API编写自动化测试. 提供脚手架,快速生成自动化测试项目. 自动生成HTML测试报告生成. 自带断言 ...

  4. 种草Cypress和TestCafe,QA同学一定想了解的Web UI自动化测试工具

    摘要:Cypress和TestCafe这两个工具相比于Selenium都更加的轻量级,且在不同的方面有了改进,比如安装更简单,增加了内置等待机制,调试更加方便等. Cypress.TestCafe.P ...

  5. 通过录屏自动测试web端查询功能_海豚 Web UI自动化测试工具

    http://div.io/topic/1339 海豚是什么? 没错,它是一个 Web UI自动化测试工具,专治Web UI的各种疑难杂症,目前只针对移动端Webapp量身定做. 说到 Web UI的 ...

  6. Python+Behave+Allure Web UI自动化测试

    基于BDD模式的Web UI自动化测试体验,集成了python,behave,allure,非主流的一个路线,可以一起玩玩. 1. 概念解释 Python: 大家都懂,3以上版本 Behave:行为驱 ...

  7. Web UI自动化测试实例(登录网易云音乐账户)——(五)Taiko

    初步想法:用Taiko自动化工具,实现登录太简单了吧! 一.对taiko的认识 初识taiko: 自动化测试工具-----Taiko taiko的安装:可能踩如下坑,那些年的坑之node.js 和 t ...

  8. 基于Selenium与Pytest框架的Web UI自动化测试系统的设计与实现

    摘要 随着互联网的高速发展,软件技术日新月异,产品更新换代的加快等,始终都离不开一个最核心的要素就是保证产品的质量,测试人员则在其中担任着不可或缺的角色.测试人员的主要工作职责就是通过各种测试手段去发 ...

  9. python写ui自动化测试用例_自动化测试(6) | Web UI 自动化测试方案

    Web项目的 UI 自动化测试方案 有用的链接: 项目讨论 项目中符合自动化测试的部分有哪些?(目标和范围 scope, 准入准出标准) 稳定的需求点.变动较少的页面 每日构建后的测试验证 daily ...

  10. 国际化分布式WEB UI自动化测试平台搭建

    国际化分布式WEB UI自动化平台 一 背景 二 特色功能 三 系统架构设计&框架选型 自动化测试框架 Selenium WebDriver Selenium Grid 四 功能介绍 平台化 ...

最新文章

  1. 分享45款高质量的免费(X)HTML/CSS模板
  2. C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)
  3. ubuntu安装python_ubuntu18.04下源码编译安装最新版本Python3
  4. 为什么c语言2的n次方减一,计算2的N次方........有什么错吗?
  5. python读写大文件 meoryerror_Python – 如何在没有MemoryError的情况下gzip大文本文件?...
  6. PHP数组和Json之间的转换
  7. win7+opencv3.0.0+vs2010 安装及配置
  8. 8-13 主观下线和客观下线
  9. 如何使用 Opencv 打开摄像头获取图像信息?
  10. [译]GLUT教程 - 重整子窗体
  11. component_春天@Component
  12. 声网 直播SDK小结
  13. JAVA开发的人力资源管理系统
  14. 华为mt2c00 android7.0,mate9安卓7.0哪个版本最好用
  15. 夜曲歌词 拼音_夜曲歌词 周杰伦夜曲LRC歌词_九酷音乐
  16. 2020java开发面试题
  17. 计算机电源选平衡,电脑里选择电源计划哪个好
  18. matlab 利用polyfitpolyval函数进行基线矫正【matlab程序】
  19. @Transactional的readOnly、timeout
  20. 美术课程对计算机的好处,电脑艺术设计的美术基本功重要性论文

热门文章

  1. 银行卡号合法性验证小结
  2. 计算机管理中的用户和组里的名称和全名有什么不同
  3. 使用easyx中的putimage函数实现无背景贴图
  4. 谜一般的设计模式:工厂方法模式和抽象工厂模式
  5. 全景拍摄怎么拍?关于vr全景这些拍摄技巧你都知道吗?
  6. win8计算机虚拟内存,win8电脑虚拟内存设置多少最好
  7. fastDFS上传文件后台报错空指针NullPointException
  8. 3. 【gRPC系列学习】 客户端Dial(DialContext)执行流程
  9. 现代教育学试题库及答案
  10. 天美时和阿迪达斯签署一项全球腕表许可协议