首页 > 其他分享 >软件测试|web自动化测试神器playwright教程(三十七)

软件测试|web自动化测试神器playwright教程(三十七)

时间:2023-08-25 18:13:09浏览次数:35  
标签:web playwright 元素 Playwright context highlight page 软件测试

在这里插入图片描述

使用Playwright的highlight()方法突出显示Web元素

简介

Playwright是一个强大的自动化测试工具,可以与Python集成,用于测试Web应用程序和执行自动化任务。其中,highlight()方法是Playwright的一个有用功能,可以突出显示Web页面上的元素,方便调试和可视化操作。本文将介绍Playwright库中的highlight()方法,以及如何使用Python进行集成和应用。

问题

我们在日常工作中,有时会遇到一个定位表达式,会同时定位到多个元素的可能,并且,有的元素是不可见的,这样一来,容易导致我们的测试用例执行失败,那么我们如何在调试定位的时候就让我们定位到的全部元素都比较直观的展示在我们眼前呢?selenium需要我们逐一去查看,而playwright就直接提供了一个高亮的方法来突出展示web页面上的元素。

实际示例

我们以百度首页为例,比如我们要定位百度首页的新闻元素,并且进行点击,那么我们的脚本应该如下:

from playwright.sync_api import Playwright, sync_playwright, expect


def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://www.baidu.com/")
    page.get_by_text("新闻").click()
    page.wait_for_timeout(10000)
    context.close()
    browser.close()
with sync_playwright() as playwright:
    run(playwright)

脚本运行结果如下:

playwright._impl._api_types.Error: Error: strict mode violation: get_by_text("新闻") resolved to 3 elements:
    1) <a target="_blank" href="http://news.baidu.com" cla…>新闻</a> aka get_by_role("link", name="新闻")
    2) <span class="text-color">互联网新闻信息服务许可证11220180008</span> aka get_by_role("paragraph").filter(has_text="互联网新闻信息服务许可证11220180008").locator("span")
    3) <span class="text-color">互联网新闻信息服务许可证11220180008</span> aka locator("div").filter(has_text="京ICP证030173号互联网新闻信息服务许可证11220180008").locator("span")

=========================== logs ===========================
waiting for get_by_text("新闻")
============================================================

我们可以发现,脚本运行报了发现多个元素,导致我们的点击操作报错。如果我们能在编写脚本之前就发现多个元素的问题,那么我们就能避免这个报错,这个时候我们需要引入playwright的元素高亮的操作,让我们的表达式找出的元素都高亮显示,我们就能知道我们需要的是哪个元素了。

highlight 操作

playwright提供了highlight()方法来帮助我们进行调试,等到代码正常运行时,我们其实不需要元素高亮。实现高亮的代码如下:

from playwright.sync_api import Playwright, sync_playwright, expect


def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://www.baidu.com/")
    page.get_by_text("新闻").highlight()
    page.wait_for_timeout(10000)
	context.close()
    browser.close()

with sync_playwright() as playwright:
    run(playwright)

运行代码,界面如下:

在这里插入图片描述

总结

本文主要介绍了在代码调试阶段使用highlight()方法使得元素高亮显示,帮助我们确认定位代码是否有问题,灵活使用高亮显示,可以提高我们的工作效率!

标签:web,playwright,元素,Playwright,context,highlight,page,软件测试
From: https://www.cnblogs.com/hogwarts/p/17657666.html

相关文章

  • 使用Webpack进行模块化开发与打包
    1.什么是WebpackWebpack是一个现代化的JavaScript模块打包工具,它可以将多个模块打包成一个或多个静态资源文件。通过Webpack,我们可以将项目中的各个模块进行模块化开发,并将它们打包成一个或多个可供浏览器加载的静态资源文件。2.Webpack的优势使用Webpack进行模块化开发与打包......
  • 如何在浏览器中启用 WebGL 以使用 HTML5 3D 查看器
    描述WebCenter中的HTML53DColladaViewer(自14.1以来新增)要求在浏览器中启用WebGL。较旧的浏览器可能不支持此功能,或者要求用户首先显式启用此功能。本页介绍如何为所有主要浏览器启用此功能。WebGL3D查看器本文是以下超级用户文章的摘要:如何在浏览器中启用WebGL?程序......
  • 软件测试从入门到精通
    一、测试介绍软件测试概念使用技术手段验证软件是否满足要求测试主流技能1、功能测试2、自动化测试3、接口测试4、性能测试主流方向: 1、功能+接口测试 2、自动化+接口 3、功能+性能二、测试常用分类2.1阶段划分单元测试针对程序源代码进行测试(单元:最小独......
  • 海康大华宇视等网络摄像机RTSP流采用websecket和H5进行RTSP网页无插件直播点播
    一.背景分析随着移动互联网时代的到来,安防监控领域为了适应互联网的发展要求,首先由国内安防监控龙头企业(海康、大华、宇视)带头先后开发了萤石云、乐橙云等互联网视频云服务,为广大个人或者企业监控用户提供的优质的视频互联网监控服务;而事实上,不管是海康大华等老牌监控厂商、还是新......
  • 高并发web开发框架解决方案
    对于大型网站来说,所采用的技术涉及面极其广泛,从硬件到软件、编程语言、数据库、Web服务器、防火墙等各个领域都有了很高的要求,提高系统高并发性能方案措施:减少数据库访问次数,文件和数据库分离,大数据分布式存储,服务器的集群负载均衡,页面缓存的使用,nosql内存数据库代替关系型数据库......
  • Prometheus+AlertManager+webhookdingtalk实现钉钉报警
    前提在我上一篇博文中(Prometheus_彭阳的技术博客_51CTO博客)介绍了,prometheus监控原理,监控服务搭建,prometheus内部函数...,如果还未搭建起prometheus服务和node_exporter实现机器初步监控的可以对照文章搭建起来,在这一小节将着重介绍prometheusalertmanager通过webhookdingta......
  • 软件测试 | 测试对URL长度的处理
    问题你的应用可能无法很好地处理个别POST参数,你也应该检查应用对特别长的URL的处理方式。HTTP标准(RFC2616)中没有限制URL的长度。相反,有可能发生的的情况是你的系统中某些其他方面可能会加以限制。你需要确保以限制的方式是可预测并可接受的。解决方案有几种方案可以测试超长的URL......
  • 基于java极速WEB+ORM 框架:jfinal2.0开发的通用后台管理系统及源码
    final2-common-admin1、基于java极速web开发框架:jfinal2.0开发的通用后台管理系统,包括完整的登录、注册、菜谱管理、厨师管理、餐厅管理等功能2、开发时是基于jdk1.8、tomcat7.0,utf8编码3、运行时请修改配置文件:a_little_config.txt及相应的运行环境:JavaBuildPath、TargetedR......
  • 11Web服务器性能评估和系统监视
    web服务器的性能评估web服务器的测试中,反映其性能的指标主要有:最大并发连接数,响应延迟和吞吐量常见的web服务器性能评测方法有基准性能测试、压力测试、可靠性测试系统监视系统本身提供的命令:last netstatj系统记录文件:运行状态集成名称:perfmon可视化监控工具......
  • Tomcat与JavaWeb开发
    安装Tomcat&JDK安装时候选择tomcat软件版本要与程序开发使用的版本一致。jdk版本要进行与tomcat保持一致。准备2个linux虚拟机,一个运行nginx进行负载均衡一个用来运行tomcat第一步:安装JDKJDK官网地址:https://www.oracle.com/java/technologies/downloads/##下载JDK......