一、运行cypress
1、如果你还没有安装cypress的运行环境,请参考另一篇文章
《cypress环境安装及过程问题总结》
https://blog.csdn.net/summer_learn/article/details/104207462?spm=1001.2014.3001.5501
2、打开cmd,进入cypress的安装目录后,运行npx cypress open

c:\Users\admin>cd c:\Users\admin\cypress
c:\Users\admin\cypress>npx cypress open

3、运行pycharm编辑器,加载cypress的脚本目录
因为cypress中的脚本是js语言,我们可以使用pycharm编辑器,或者visiual studio code编辑器。根据自己情况选择,下面是以pycharm为例进行步骤讲解。


这时打开cypress的运行界面,就可以看到在cypress下面新建的目录文件已经同步到cypress上,也就是说,我们新建的脚本保存后,就可以实时同步到cypress上,在cypress中双击脚本,就可以自动运行。

二、了解cypress常用的语法
1、在cypress的图形界面Help-Documentation打开帮助文档
或者直接浏览器输入地址打开帮助文档https://on.cypress.io/

2、我们在编辑器的cy_test文件夹下,创建一个baidu_test的js文件

3、打开cypress图形界面,看到新建的文件已经被检测到了,只是文件内容还是空的。
这时可以尝试点击cypress脚本,就可以看到自动运行并打开了浏览器!
这也是比selenium好的一点,就是cypress不用添加任何webdriver驱动器,就可以打开浏览器,而selenium则需要先添加驱动器,并在对应浏览器安装插件后才可以使用selenium打开对应浏览器。


Cypress 会自动检测你可用的浏览器,建议把 Chrome 设置为默认浏览器,或者你也可以运行 Cypress 的时候手动指定cypress run --browser chrome。

4、基本命令介绍
.get()-找到元素
.clear()-清除输入或文本区域的值。
.type()-输入文本内容
.contains()-按文本内容查询
// eg:Find an element within ‘.main’ containing the text ‘New Post’
cy.get(’.main’).contains(‘New Post’)

.click()-默认左键单击按钮
.should-断言
.check()-勾选复选框
.uncheck()-取消复选框
.blur()-使重点突出的DOM元素变得模糊。
.focus()-专注于DOM元素。
.select()-选择一个在.
.dblclick()-双击DOM元素。
.rightclick()-右击DOM元素。

更多命令可以在cypress的官网API内容中进行学习

5、脚本结构介绍
cypress给我们提供了很多样例脚本,大家可以多看一下样例脚本学习里面命令的使用方法。
下面是一个网上其他大佬分享的百度访问的脚本和脚本结构解释。

/// <reference types="Cypress" />describe('百毒网站首页测试用例集', function() {beforeEach(() => {cy.visit('https://www.baidu.com')})it('百度一下按钮文本检查', function() {cy.get("#su").then($button_start_search=>{expect($button_start_search.attr("value")).to.eq("百度一下");})})})

代码解释:

reference表示告诉 VSCode 要去Cypress package 里找相关的语义解析,这样一来 Cypress 相关的语法和函数等就可以尽情地使用了;
describe声明了一个测试用例集;
beforeEach相当于单元测试的setup,即在每个测试用例运行前需要做的事;
it声明了一个测试用例;
cy.get接受一个 js selector, 就是元素定位字符串,当然 Cypress 也支持 xpath 定位;
通过then或should,我们可以把get到的元素对象传递到下一步,以便做进一步处理,这里通过then把找到的button_start_search传递到下一步,并最终通过expect函数来判断button_start_search的value属性是否跟预期一致。
所以,去除一些我们预期想要写的内容,一个完整的cypress的脚本可以简化成以下结构:

/// <reference types="Cypress" />describe('tests name', function() {beforeEach(() => {cy.visit('web address')})it('一个用例名称', function() {cy.get("定位元素").then()})})

备注:查看定位元素的方法,是通过手动打开网站后,F12->点击工具栏的鼠标->移动到你需要定位的地方->找到它对应的元素

三、编写一个简单的cypress脚本
我们尝试编写一个脚本,即通过百度网站搜索关于cypress的内容并断言网址中包含所查询的内容,根据上面的脚本结构以及基本命令介绍,可以自己动手尝试一下编写。

/// <reference types="Cypress" />describe('通过百度查找网页内容', function() {beforeEach(() => {cy.visit('www.baidu.com')})it('百度cypress的内容', function() {cy.get("#kw").type('cypress')cy.get("#su").click()//断言网页地址内容包含cypresscy.url().should("include",'cypress')})})

保存后执行结果如下

可以看到执行结果通过,总用时5.51秒。执行过程中有一些红色的执行过程记录可以不用管,只要最终结果是执行通过的就可以了。这个红色的并不是报错,而是在执行过程中的一些未完成动作的快照记录,可以鼠标悬停到执行过程的每一步去观察一下。

如果这个内容对你有用,记得关注我哦,互相分享学习测试技能。

cypress初识--看完就可以写一个简单web自动化脚本了!相关推荐

  1. linux spt 脚本,写一个简单的FGO脚本

    前言 正好最近事情比较少,就抓紧时间简单写了一个FGO脚本(API),当初的想法相当简单,就是想写一个abstract的FGO的API来实现对FGO的操作,同时还可以当脚本来用. 思路 因为是关于FG ...

  2. 用Python写一个简单的游戏脚本,让你成为游戏里面的大佬!

    想必大家都喜欢玩游戏吧,现在游戏市场是非常火爆和可观的,不少程序员都纷纷涌入游戏公司,我们学习python其实也可以作为写游戏脚本的,不清楚的小伙伴可以来看下了哦~ 以楚留香的电脑版为例,记录脚本的编 ...

  3. 怎样写一个简单的操作系统?(原文标题:How to write a simple operating system) 分类: 翻译 2011-01-26 01:10 3175人阅读 评论(3) 收藏

    怎样写一个简单的操作系统?(原文标题:How to write a simple operating system) 分类: 翻译2011-01-26 01:10 3175人阅读 评论(3) 收藏 举 ...

  4. 构建自己的购物搜索引擎一:写一个简单的

    记得2010年10月9号,淘宝全网搜索引擎一淘网上线,当时不怎么关注,只是在网站上看到过新闻而己,前两个月,觉得是时候走确定自己以后要走的方向了,于是决定以后加入到搜索的行列中,此时开始关注一淘网的技 ...

  5. 如何搭建python框架_从零开始:写一个简单的Python框架

    原标题:从零开始:写一个简单的Python框架 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 你为什么想搭建一个Web框架?我想有下面几个原因: 有一个 ...

  6. ipad php mysql_如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1

    原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...

  7. 用java写一个简单的区块链(下)

    用java写一个简单的区块链(下) 2018年03月29日 21:44:35 java派大星 阅读数:725 标签: 区块链java 更多 个人分类: 区块链 版权声明:本文为博主原创文章,转载请标明 ...

  8. 如何写一个简单的node.js C 扩展

    node 是由 c 编写的,核心的 node 模块也都是由 c 代码来实现,所以同样 node 也开放了让使用者编写 c 扩展来实现一些操作的窗口. 如果大家对于 require 函数的描述还有印象的 ...

  9. ios php mysql实例_如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1

    原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...

  10. [Unity3D]用C#在unity里面写一个简单的红绿灯

    [Unity3D]用C#在unity里面写一个简单的红绿灯 00.成果展示 01.创建可变颜色的小球 02.编写代码 R1.cs R2.cs G1.cs G2.cs Y1.cs Y2.cs 03.自己 ...

最新文章

  1. linux c remove 删除文件或目录函数
  2. 一个历史遗留问题,引发的linux内存管理的‘血案’
  3. boost::hana::prepend用法的测试程序
  4. 小肚皮最新版本_小肚皮旧版本
  5. iphone短信尚未送达_潮讯:iPhone12重大升级;华为麒麟被炒价;抖音上线云游戏;骚扰短信要凉了;一加刘作虎回归OPPO...
  6. 如何:删除Word 2010中的“向下箭头”
  7. 配置rsync同步+inotify实时监控
  8. 【图像去雾】基于matlab直方图+retinex+暗通道图像去雾【含Matlab源码 074期】
  9. js获取url参数值的几种方式
  10. 【ADS学习笔记(二)——ADS初次仿真】
  11. 加速 Android 开发的五大开源网站
  12. Android移动开发
  13. 为什么程序员应该写博客?用什么博客系统?
  14. One or more errors occurred 报错
  15. 物联计算机大赛,计算机与物联网学院在本次计算机设计大赛中喜获佳绩
  16. 嫡权法赋权法_Python实现客观赋权法
  17. 同一服务器两个端口不同的应用session覆盖解决方案
  18. sai椭圆尺子等比例放大或者缩小
  19. Laravel下载地址合集
  20. 自学(网站制作,FLASH,PS,3D)者,一定要看。

热门文章

  1. Docker进阶篇超详细版(https://www.bilibili.com/video/BV1kv411q7Qc)
  2. docker容器无root 权限,如何获得docker容器里面的root权限
  3. 喷漆房出现故障应该如何处理
  4. kappa一致性检验教程_一致性检验的几种方式--ICC、kappa、weighted kappa、Kendall
  5. java星号心形代码_心形原创符号
  6. 如何做抖音小程序赚钱?抖音小程序怎么赚钱?抖音最简单的赚钱方式
  7. 线性拟合(回归)的小结
  8. 跨越生态裂谷 华为云Stack如何为企业智能化转型架桥铺路?
  9. Mysql—— 内连接、左连接、右连接以及全连接查询
  10. 计算机查看图片的打开方式,win10如何设置打开图片方式为照片查看器-img文件怎么打开...