合集-playwright自动化测试
摘要:playwright安装本文主要分享由微软开发的实现Web UI自动化测试工具Playwright库,相比于之前学习过selenium库,playwright对于编写自动化代码绝对是更轻松了,因为它支持脚本录制,如果只求简单点可以不用写一行代码就能够实现自动化,而且playwright有许多强大的a
阅读全文
摘要:Playwright驱动浏览器安装 Playwright 时,Playwright默认自动安装了三种浏览器(Chromium、Firefox 和 WebKit)。我们可以驱动这三种浏览器中的任意一种。使用with上下文管理器启动chromium浏览器# '''# author: 测试-老姜 交流微信
阅读全文
摘要:playwright codegen 录制脚本Playwright 具有开箱即用的生成测试的能力,是快速开始测试的好方法。它可以录制浏览器中的操作并自动生成可以执行的脚本。录制时将打开两个窗口,一 个是浏览器窗口,您可以在其中与要测试的网站进行交互,另一个是 Playwright Inspector
阅读全文
摘要:HTML,DOM 和 CSS在元素定位之前,我们需要先打好基础。让我们来谈谈 HTML、DOM 和 CSS。HTML 是一种用于创建 Web 页面的标记语言,它描述了页面的结构和内容。而 DOM(文档对象模型)是一种将 HTML 文档表示为对象的方式,使得开发人员可以轻松地访问和操作页面的元素。最后
阅读全文
摘要:playwright元素定位方法应用元素定位时自动化测试最为关键的环节,所谓的自动化测试无非就是定位元素,然后操作元素最后断言,元素定位时自动化测试的基础,是必须要掌握的。有selenium使用经验的童鞋首先会想到selenium的八大元素定位,同理Playwright也有自己的元素定位的方法,Pl
阅读全文
摘要:playwright元素定位以下是 playwright 推荐的元素定位方法。page.get_by_role()通过显式和隐式可访问性属性进行定位。page.get_by_text()通过文本内容定位。page.get_by_label()通过关联标签的文本定位表单控件。page.get_by_p
阅读全文
摘要:06_playwright元素定位_定位到多个元素_all方法应用playwright元素定位时默认时匹配所有符合的元素,当符合定位信息的元素有多个时,我们通常要选择我们需要的元素,此时可以使用all()方法获取到所有定位到的元素对象,返回值为一个列表,这个时候就可以通过索引选择列表中的元素进行操作
阅读全文
摘要:playwright元素定位:first、last、nth()playwright元素定位时默认时匹配所有符合的元素,当符合定位信息的元素有多个时,我们通常要挑选出我们需要的元素,可以使用first、last、nth来实现。first 和 last根据名称我们就可以知道,这是定位的第一个和最后一个元
阅读全文
摘要:组合定位_and更新于1.34版本方法 locator.and_() 通过匹配其他定位器来缩小现有定位器的范围。例如,您可以将 page.get_by_role() 和 page.get_by_title() 组合在一起,以按标题和标签角色进行匹配。button = page.get_by_role
阅读全文
摘要:locator.filter()过滤定位器本文章向大家介绍playwright 中locator.filter()过滤定位器的使用,locator.filter()方法可以对locator 定位到的元素进行筛选过滤,可以按文本过滤,也可以按locator定位器过滤。locator.filter()
阅读全文
摘要:Playwright 元素定位_正则表达式应用。Playwright框架下使用文本定位元素时,是支持正则表达式的,可以定位文本符合正则表达式的元素,另外使用正则表达式可以精确匹配文本。例如上图中的登录按钮,如果使用登录两个字定位的话会定位到两个元素,因为还有保持登录,中也包含了登录两个字,这种情况下
阅读全文
摘要:playwright元素操作:file、type、click定位到元素后,最多得操作就是点击元素或输入文本,点击可以使用click来实现。输入文本可以使用fill和click来实现。click()点击:page.get_by_text('登录',exact=True).click() #exact=
阅读全文
摘要:Playwright frame中元素定位网页中经常嵌套frame框架,在网页中标签为iframe或frame的元素就是frame框架如图或者在frame框架中的元素时不能直接定位的,elenium处理frame,需要切换到frame中,然后再切换出来,操作比较麻烦,那么playwright对于fr
阅读全文
摘要:Playwright 网页操作在Web的UI自动化的测试中,我们通常需要使用一些方法来操作浏览器,今天就跟随学习了解一下。这一篇老姜主要是介绍一下,在自动化测试的时候,我们常见的一些浏览器操作有哪些,老姜将会一一介绍和讲解。浏览器窗口最大化驱动浏览器时,目前大部分浏览器启动时会自动最大化的,但是部分
阅读全文
摘要:等待urlwait_for_url方法可以等待某个特定的urlwait_for_url(url, options)` 方法:该方法会等待 URL 包含指定的字符串。 - `url`:要等待的 URL。 - `options`:等待选项,例如等待超时时间。 - 示例: ``` await page.w
阅读全文
摘要:playwright模拟鼠标操作_悬停_右击_双击鼠标悬停 – hover()有些元素,只有你鼠标移动到它那个位置上,他才会展开或者显示一些内容,这时候就要用到hover()操作了。以个人设置这个下拉菜单,来看一下hover的使用。项目实践代码# '''# author: 测试-老姜 交流微信/QQ
阅读全文
摘要:playwright模拟鼠标操作_拖拽1现在很多网站登录时都有滑块拖动验证功能,在写自动化测试脚本时就需要在脚本中实现拖动滑块的过程,playwright提供了多种实现元素的拖拽和释放的方法,我们先看第一种。模拟鼠标拖拽一定距离。应用的方法获取元素位置及大小:ele.bounding_box()鼠标
阅读全文
摘要:playwright模拟鼠标操作_拖拽2现在很多网站登录时都有滑块拖动验证功能,在写自动化测试脚本时就需要在脚本中实现拖动滑块的过程,playwright提供了多种实现元素的拖拽和释放的方法,我们先看第二种。将元素拖拽到另一个元素所在的位置。按住元素从页面的一个位置拖动到另外一个位置,有2种方式可以
阅读全文
摘要:Playwright网页切换在网页上点击一些按钮或超链接时,有时会打开一个新的网页而不是一个窗口。这个时候如果下一步操作是在新的网页上,那么就需要切换网页窗口,切换到网页后再执行元素定位等操作。playwright处理浏览器多窗口切换简单快捷。下边老姜就给小伙伴们或者童鞋们介绍一下playwrigh
阅读全文
摘要:Playwright模拟键盘操作在模拟键盘操作这块,playwright也提供了多种方法来实现,模拟键盘操作,定位到元素使用press()方法:page.locator.press()定位元素后操作键盘page.keyboard.press()直接操作键盘keyboard.down() 和 keyb
阅读全文
摘要:Playwright模拟键盘操作_输入总结篇页面上输入框输入文本内容总结下有四种方式1.page.fill() 输入字符串2.page.type() 字符一个个敲入3.page.keyboard.type() 键盘事件,模拟键盘上按钮操作4.page.keyboard.insert_text() 键
阅读全文
摘要:playwright单选框_复选框勾选对单选框、复选框进行勾选,一种是使用click()点击勾选,还可以使用check()方法勾选。还可以使用uncheck()取消勾选。使用方式:Locator.check() #勾选复选框Locator.uncheck() #取消勾选Locator.set_che
阅读全文
摘要:playwright单选框_下拉菜单选择我们的网页上存在着大量的下拉菜单(select),那么在写自动化测试脚本时就需要选择下拉菜单,可能只选择一个也可能选择多个,playwright也提供了select的方法进行操作。使用select_option()选择元素中的一个或多个选项。使用时有两种使用方
阅读全文
摘要:Playwright 网页截图在做web自动化测试时,脚本执行时会出现执行失败的情况,这个时候就需要分析失败的原因,由于脚本执行时是不需要人工盯着执行的,这个时候就需要在脚本执行失败时保留某些信息方便脚本执行完成后来分析失败的原因,将脚本执行失败时的网页截个图保留下来,就可以非常方便的查看脚本失败时
阅读全文
摘要:前面我们讲过,做自动化测试时,脚本执行完成需要进行断言,断言时经常选择页面中的一些信息进行断言,这些信息都是在某个元素上的,要获取这些信息就需要获取这些元素的文本,另外元素的属性也可以用来断言,而且在元素定位时还可以借助一个元素的属性值去定位另一个元素。作为一款强大的web自动化测试神器,playw
阅读全文
摘要:我们在自动化测试中,有时需要判断元素是否可见或者是否可以点击,这些元素状态也可以用于断言中,playwright提供了多个方法用于获取元素的各种状态,以便用于我们的后续操作或者断言中。本篇文章就来给大家介绍一下playwright对元素状态的判断。常见的元素状态判断方法is_checked(sele
阅读全文
摘要:元素相关操作_等待元素到某种状态对于自动化测试来说,本质上就是定位元素、操作元素。网页上的元素有不同状态,有些元素本来不在网页的DOM中,经过某一步操作后才出现。有些元素是本来就已经在DOM中但是是隐藏的状态,经过某一步操作后才变成显示状态。如果在元素的没有达到想要的状态就执行脚本操作元素,往往会导
阅读全文
摘要:元素相关操作_元素高亮显示highlight()在写自动化测试脚本时,一定会定位元素,但是有时候会出现元素定位错误的情况,即定位到别的元素上了,这个时候脚本执行不过报错,但是执行的过程却是错误的。这种情况下我们需要直到定位到那个元素了,这种情况下就可以使用元素高亮显示来查看定位到那个元素了,high
阅读全文
摘要:等待网页加载到某种状态自动化测试过程中,也可以等待网页加载到某种状态,然后执行脚本,这样脚本执行的稳定性会提高。可以使用wait_for_load_state方法用于等待页面加载到指定状态。wait_for_load_state方法可选参数state和timeout其中state的默认值是load,
阅读全文
摘要:Playwright 网页操作_获取网页标题和URL在做web自动化测试时,脚本执行完成后需要进行断言,判断脚本执行是否存在问题。在断言时通常选择一些页面上的信息或者页面上元素的状态来断言,使用网页标题或url来断言就是常见的断言方式,我们以某网站的登录功能为例,在登录前后网页的标题和url是不同的
阅读全文
摘要:Route类修改接口响应在做web的UI自动化测试时,我们需要尽可能的测试全面,各个功能的正常场景和异常场景都需要覆盖到。这种情况下为了覆盖这些场景我们需要准备大量的测试数据,但是有些测试数据可能是不好准备的,尤其是一些异常场景的测试数据。这种情况下如果要测试全面,我们怎么办呢?Playwright
阅读全文
摘要:Route类修改接口请求在做web的UI自动化测试时,我们需要尽可能的测试全面,各个功能的正常场景和异常场景都需要覆盖到。这种情况下为了覆盖这些场景我们需要准备大量的测试数据,但是有些测试数据可能是不好准备的,尤其是一些异常场景的测试数据。这种情况下如果要测试全面,我们怎么办呢?Playwright
阅读全文
摘要:Playwright接口测试_发起接口请求playwright是可以做接口测试的,这个是playwright的优势之一。要做接口自动化测试主要过程就是发起接口请求,接收接口响应,断言。本文我们就来看一下playwright如何发起接口请求。Playwright下发起接口请求有三种方法,可以通过bro
阅读全文
摘要:playwright_发起接口请求_get、post、fetch应用详解接口的请求类型有get、post、head、delete、put等多种请求类型,每种请求类型的接口在发起接口请求时是有区别的,目前系统中主要是get和post两种接口类型,本文主要介绍这两种接口发起请求时的具体应用。前面一篇文章
阅读全文
摘要:playwright_接口响应详解做接口测试时,我们往往需要从接口的响应中获取所需的值用于接口之间的关联或者时断言,接下来我们来看一下playwright框架下做接口自动化测试如何获取接口响应。我们以下方列表为例,来看一下如何获取接口的响应我们先发起接口调用,获取该接口的响应对象# '''# aut
阅读全文
摘要:pytest-playwright安装pytest-playwright是playwright框架的一个插件,也是python的一个库。pytest-playwright插件完美的继承了pytest 用例框架和playwright基础使用的封装,基本能满足工作中的常规需求了,不需要我们再做额外的插件
阅读全文
摘要:pytest-playwright配置base_url在做自动化测试的时候,我们经常是基于某个测试环境地址去测试某个项目,这样的话我们可以把测试环境的地址拿出来做为一个全局的配置。其它地方用相对地址就行。在本专栏的第45篇教程介绍了如何在实例化content对象时,设置base_url:contex
阅读全文
摘要:pytest-playwright_pytest.ini配置文件应用pytest.ini文件是pytest框架的配置文件,在pytest.ini文件中可以配置自动化用例执行时的参数,用例将按照配置的参数执行。我们来看一下pytest.ini文件中常用配置首先我们先来看一下跟收集用例相关的参数pyte
阅读全文
摘要:pytest-playwright_监听网络请求事件在 Playwright 中,有一个`on` 方法可以用于在页面中监听和响应各种事件,本文主要介绍一下监听网络请求事件。监听网络请求事件:`on` 方法还可以用于监听页面中的网络请求事件,包括请求发送前、请求发送后、请求成功、请求失败等等,在监听到
阅读全文
摘要:Playwright 获取toast信息前言在使用app的时候,经常会遇到一些提示信息,出现之后一闪而过,不需要手动操作就会自动关闭,不留下一点点痕迹,这种提示信息就是toast信息。现在在web系统中这种toast信息也应用的越来越多,那么我们在做web自动化的时候就可能需要获取这些toast信息
阅读全文
摘要:解决腾讯股吧时间轴选择问题有的同学看了我发的playwright教程后,在学习过程中有问题会跟我沟通交流,我也是非常高兴与同学一块学习的。前几天有同学问了一个关于时间选择的问题,今天终于有时间处理一下了。具体问题看下图:打开同学问题中的网页,所说的时间轴如下图:按照同学所说,他应该是希望点击时间轴上
阅读全文
摘要:45_playwright_expect断言playwright 提供了一个 expect方法 用于断言,该方法提供了丰富的断言场景,我们来看一下expect的使用。expect 使用断言描述expect(locator).to_be_checked()Checkbox is checkedexpe
阅读全文
摘要:49_playwright_获取网页的html或元素的html爬虫是很多小伙伴喜欢做的事情,爬虫时需要获取到整个页面的html,playwright也提供了获取整个页面的html的功能,使用page.content()就可以实现。另外,playwright还可以获取某个元素对应的html,使用pag
阅读全文
摘要:50_playwright_保存登录cookie解决反复登录问题做测试执行脚本时都跳不过登录这个环节,但是如果每个脚本执行时都登录一次这会大大降低脚本执行效率。如果能在执行测试时只登录一次那么将大量节约脚本执行的时间。Playwright在称为浏览器上下文的隔离环境中执行测试。该隔离模型提高了可重复
阅读全文
摘要:36_playwright_文件上传_非标准文件上传功能系统有的文件上传功能不是标准的文件上传功能,我们以禅道的新建用例中的添加文件为例,这个添加文件按钮的html源码显示,它的标签不是input,type也不等于file,这种上传文件功能就是非标准文件上传功能。这种非标准的文件上传功能,要想实现文
阅读全文
摘要:37_playwright_文件下载我们来看一下playwright下是如何实现文件下载功能的。在下载文件时,需要使用expect_download()监听下载事件,再结合save_as(path)将文件另存到指定的目录下。使用语法:with page.expect_download() as f:
阅读全文
摘要:38_playwright_page.pause脚本调试定位(Inspect selectors)在编写脚本的时候,我们经常遇到一些比较难以定位的元素,这种情况下可以使用playwright 的page.pause() 断点功能,直接打开playwright inspector脚本录制工具,在当前脚
阅读全文
摘要:39_playwright_弹窗处理目前的系统中,在应用错误或修改数据、删除数据时都会弹出提示信息窗口,弹出的警告窗口有的是可以直接定位窗口上的元素的,有的是不能定位的。接下来我们来看下这种不能定位的弹窗playwright如何处理。我们先来了解一下弹窗的分类,弹窗通常分为3种,分别为alert,c
阅读全文
摘要:40_playwright_执行javascript在之前的章节中,我们已经掌握了 Playwright 的基本功能,包括创建浏览器和页面,定位元素并与之交互等。这些功能已经足够满足大部分的浏览器自动化需求。然而,在实际应用中,我们可能需要更复杂的操作,这时候 Playwright 的 API 就不
阅读全文
摘要:41_playwright_日历时间控件处理系统中往往存在着需要设置时间的情况,基本都是使用时间控件来选择时间,为了保证时间格式的统一,在设置时间时是不允许手动输入的,只通过点击鼠标选择时间就可以了,这种操作在使用时没有问题,但是在写自动化测试脚本时问题就来了,就是如果安装手动操作选择时间的过程来写
阅读全文
摘要:42_playwright_修改或添加元素属性在做自动化测试时,有时候会需要通过修改元素的属性来方便我们脚本的编写,像前面移除时间日历控件的readonly属性以方便直接输入就是个典型的案例,除了删除元素的属性之外工作中可能还会遇到修改元素属性值,或者添加元素的属性的情况,我们也可以通过执行java
阅读全文
摘要:playwright_执行java script控制滚动条在做自动化测试时,有时候需要控制滚动条,前面我们讲过一个playwright提供的方法:scroll_into_view_if_needed(),这个方法可以控制滚动条滚动到元素出现的位置。除了这个方法外还可以可以通过执行js和模拟鼠标滚轮操
阅读全文
摘要:44_playwright_模拟鼠标滚轮控制滚动条在做自动化测试时,有时候需要控制滚动条,前面我们讲过一个playwright提供的方法:scroll_into_view_if_needed(),这个方法可以控制滚动条滚动到元素出现的位置。还介绍了通过执行js控制滚动条,现在我们来看一下模拟鼠标滚轮
阅读全文
摘要:45_playwright_非常人性化的baseurl工作中,我们在做自动化测试时,往往都是针对一个被测系统的,在自动化测试时页面之间会来回切换时我们会发现不同页面的url前面的一部分是一样的,例如禅道登录页面禅道主页 禅道测试用例浏览页面以上不同的的url中前面相同的这部分url就是base ur
阅读全文
摘要:46_playwright_强大的trace viewer测试追踪功能我们在做自动化测试过程中,一定会遇到脚本执行失败的情况。由于在脚本执行时不可能工作人员盯着每一个脚本的执行过程,尤其是有时候脚本执行还是在晚上下班时间执行的。这种情况下,我们在分析失败脚本的原因时我们就需要知道在脚本执行失败时的一
阅读全文
摘要:47_playwright_脚本执行过程录屏我们在做自动化测试过程中,一定会遇到脚本执行失败的情况。由于在脚本执行时不可能工作人员盯着每一个脚本的执行过程,尤其是有时候脚本执行还是在晚上下班时间执行的。这种情况下,我们在分析失败脚本的原因时我们就需要知道在脚本执行失败时的一些信息以方便我们来分析脚本
阅读全文
摘要:playwright选中元素上的文本选中元素中的文本有点跟元素高亮显示类似,效果就是在网页上将元素上的文字标识出来。使用方法:Locator.select_text()实践代码:# '''# author: 测试-老姜 交流微信/QQ:349940839# 欢迎添加微信或QQ,加入学习群共同学习交流
阅读全文
摘要:Playwright元素聚焦当打开一个页面时,有时候光标会默认位于某个元素上,这个时候我们定位一个其他的元素输入,可能会出现问题,就是输入的字符串并没有输入到目标元素中,而是输入到了光标所在的元素。这个时候可以通过click一下目标元素使得光标移动到目标元素上来解决这个问题,聚焦到某个元素就类似于c
阅读全文
摘要:本篇文章我们补充介绍一种获取元素上文本的方法:text_content()使用方法:Page.text_content(selector) page对象调用Locator.text_content() locator对象调用实践代码:# '''# author: 测试-老姜 交流微信/QQ:3499
阅读全文
摘要:playwright_指定元素触发事件playwright中使用dispatch_event()方法用于在指定元素上触发指定类型的事件。使用方法:Locator. dispatch_event(‘event’)Page. dispatch_event(selector,’event’)例如想以任何可
阅读全文
摘要:34_playwright_滚动到元素出现的位置当页面比较长,超过浏览器的高度时候,有些元素虽然没有显示,但是实际已经加载到页面上了,是可以直接操作的,而且playwright 在点击元素的时候,会自动滚动到元素出现的位置,这点是非常人性化的。但有些元素需要滚动到元素出现的位置,让元素处于可视的窗口
阅读全文
摘要:35_playwright_文件上传_标准文件上传功能系统中都有文件的上传或下载功能,在做自动化测试时,实现自动化的文件上传和下载也是不可避免的,今天我们先来看一下如何实现自动化的文件上传。在web系统中,文件上传功能有的是标准的上传文件功能,什么是标准的文件上传功能,我们来看下图的文件上传功能在图
阅读全文
摘要:获取浏览器cookie本文介绍一下如何获取浏览器的cookie,目前实际应用中没有需要获取cookie的场景,但是作为知识点介绍一下,如果有朋友应用中有使用的场景,可以告诉我一下,感谢。获取代码:# '''# author: 测试-老姜 交流微信/QQ:349940839# 欢迎添加微信或QQ,加入
阅读全文
摘要:set_extra_http_headers设置请求头现在有很多的系统,它的登录态使用token来保存,这种情况下,发起请求时,可能需要带上这个token,本文将介绍一下如何设置请求头。在playwright下使用set_extra_http_headers()方法来设置。有两种方法,第一种:使用p
阅读全文
摘要:基于aw的关键字驱动模式介绍 关键字驱动是自动化测试框架搭建的一种思想,基于关键字驱动搭建的自动化测试框架也被称为表格驱动测试或者基于动作字的测试,也就是将测试执行的步骤,测试数据、预期结果都写在excel文件或yaml文件等文件中,可以从文件中读取相关步骤和数据执行测试并自动断言。以关键字驱动的思
阅读全文
摘要:AW封装AW也就是ActionWord,在UI自动化测试领域,通俗理解就是在页面上的各种各样的动作,例如点击、输入、获取元素上的文字、点击警告窗口等。像playwright中的click、fill等也是aw,本文要介绍的AW的封装就是在playwright提供的api的基础上进一步封装,例如将元素定
阅读全文
摘要:POM应用POM是业内公认最佳的UI自动化测试设计模式,POM是PageObjectModule(页面对象模式)的缩写,其目的是为了Web UI测试创建对象库。在这种模式下,应用涉及的每一个页面可以定义为一个单独的类。类中应该包含此页面上要操作的页面元素和页面上的操作过程等,我们可以将页面元素的定位
阅读全文
摘要:多账号登录系统完成业务流程测试工作中我们做UI自动化测试时,我们的自动化测试用例往往都是针对完整的业务流程的,而有的业务流程可能涉及到多个角色,而每个角色需要有对应的账号,这种情况下想要完成整个业务流程的测试就需要切换不同的账号,本文中我将分享一个多个账号切换登录的案例。我们以禅道系统为例,以测试人
阅读全文
摘要:Table表格定位获取数据工作中我们测试的系统往往都有很多表格用来展示系统数据,尤其是报表功能。在做UI自动化测试时,我们有可能需要验证表格中的数据是否正确,可能需要我们把表格中的数据挨个验证一遍,这种情况下一个单元格一个单元格的定位获取数据时非常麻烦的,这个时候如果能一次性的把所有数据都获取下来再
阅读全文