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

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

时间:2023-11-10 17:08:11浏览次数:40  
标签:web playwright 获取 sync 输入框 context page 软件测试

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

简介

在我们使用selenium时,我们可以获取元素的属性,元素的文本值,以及输入框的内容等,作为比selenium更为强大的web自动化测试神器,playwright也可以实现对元素属性,文本值和输入框内容的抓取,并且实现比selenium更为简单,本文我们就为大家介绍一下使用playwright获取元素属性,元素文本值以及输入框内容的方法。

获取元素属性和文本值

在selenium中,我们可以通过get_attribute()获取元素属性,通过inner_text()获取元素文本值,现在我们来介绍一下如何使用playwright来获取元素属性和文本值,我们以百度页面为例,如下图所示:

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

我们可以看到左上方有多个a标签,现在我们来获取一下某一个标签的属性以及文本值,代码如下:

from playwright.sync_api import sync_playwright



with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=100)
    context = browser.new_context()  # 创建上下文,浏览器实例

    page = context.new_page()  # 打开标签页

    page.goto("https://www.baidu.com/")
    page.wait_for_load_state("networkidle")
    # div 下第一个a标签
    ele1 = page.locator('#s-top-left>a').first
    print(ele1.get_attribute('href'))
    print(ele1.inner_text())

---------
运行脚本,输出结果如下:
http://news.baidu.com
新闻

获取input输入框中的值

我们在输入框输入的值,在页面中是无法实时显示的,如下图:

软件测试|web自动化测试神器playwright教程(三十八)_输入框_03

要获取在输入框输入的值,代码如下:

from playwright.sync_api import sync_playwright



with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=100)
    context = browser.new_context()  # 创建上下文,浏览器实例

    page = context.new_page()  # 打开标签页

    page.goto("https://www.baidu.com/")
    page.wait_for_load_state("networkidle")
    # 获取输入框的值
    input = page.locator('#kw')
    input.fill('playwright')
    print(input.input_value())
-----------
输出结果如下:
playwright

总结

本文主要介绍了使用playwright获取元素属性,文本内容以及输入框内容的方法,根据具体的需求,我们可以进一步扩展这些操作以进行更复杂的浏览器自动化任务。希望这篇文章对大家有所帮助!

标签:web,playwright,获取,sync,输入框,context,page,软件测试
From: https://blog.51cto.com/u_15649298/8304643

相关文章

  • 软件测试|解决Github port 443 : Timed out连接超时的问题
    前言GitHub是全球最大的开源代码托管平台之一,许多开发者和团队使用它来管理和协作开源项目。但在当下,我们在clone或者提交代码时会经常遇到"GitHubPort443:TimedOut"错误,这意味着我们的电脑无法建立与GitHub服务器的安全连接。这个问题通常由网络问题或防火墙设置引起。在本文......
  • 怎么通过LiveNVR流媒体平台配置实现将海康Ehome、ISUP协议统一接入实现Web无插件播放
    @目录1、海康ISUP接入配置2、海康设备接入2.1、海康EHOME接入配置示例2.2、海康ISUP接入配置示例3、通道配置3.1、直播流接入类型海康ISUP3.2、海康ISUP设备ID3.3、启用保存3.4、接入成功4、相关问题4.1、其它方式接入4.2、如何输出GB281815、RTSP/HLS/FLV/RTMP拉流Onvif流媒......
  • 修改Web网页中资源加载的优先级
    在Chrome浏览器中,网络请求的优先级分成了5个等级:Highest最高,如页面HTML资源和CSS文件;High高,如正文图片请求资源;Medium中等,如页面的业务JavaScript文件请求;Low低,如内联的Base64资源,异步加载的JavaScript文件请求;Lowest最低,如发送的统计请求;调整preload预加载默认的优......
  • vue-cli-service vue.config.js配置 productionSourceMap与webpack中的devtool 关联详
    https://webpack.js.org/configuration/devtool/https://cli.vuejs.org/zh/config/#productionsourcemap https://github.com/vuejs/vue-cli/blob/f0f254e4bc81ed322eeb9f7de346e987e845068e/packages/%40vue/cli-service/lib/config/prod.js#L7 可以在源码中看到if(pro......
  • 13,zabbix web.page.regexp方法
    zabbix-agent#登录agent端,检查页面正常访问时的状态Copy]#curl-i10.117.x.x/path/login.jspHTTP/1.1200OK...#寻找正常页面返回中具有代表性的字符串zabbix-server#通过web.page.regexp匹配字符串检查状态Copy]#zabbix_get-s10.117.x.x-p10050-kweb.page.......
  • playwright启动一个浏览器
    一、start()和stop()的方式:fromplaywright.sync_apiimportsync_playwrightplaywright=sync_playwright().start()browser=playwright.chromium.launch(headless=False)#启动chromium浏览器page=browser.new_page()#打开一个标签页page.goto("http://xxx.xx.......
  • playwright录制脚本启动运行
    安装好playwright:pipinstallplaywright终端输入启动命令:playwrightcodegenhttp://xxx.xx.xxx:xx/login点击回车,启动运行,操作后右侧有操作脚本 ......
  • Streamlit项目:基于讯飞星火认知大模型开发Web智能对话应用
    文章目录1前言2API获取3官方文档的调用代码4Streamlit网页的搭建4.1代码及效果展示4.2Streamlit相关知识点5结语1前言科大讯飞公司于2023年8月15日发布了讯飞认知大模型V2.0,这是一款集跨领域知识和语言理解能力于一体的新一代认知智能大模型。前日,博主对讯飞认知大模型......
  • c# webapi 在swagger里添加全局过滤器
    Swagger原理Swagger就是利用反射技术遍历所有Api接口,并且从xml文件中读取注释,在利用Swagger内置的模板组合html显示至客户端实现接口可视化,并且可调用。在WEBApi中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行过程拦截处理。引入了这一机制可以更......
  • 通过WebRTC简单实现媒体共享
    通过WebRTC简单实现媒体共享媒体协商在设置本地描述符(offer/answer)前,我们总是需要将媒体添加到连接中,只有这样在描述符中才能包含需要共享的媒体信息,除非你不需要共享媒体。在实际应用中,我们通常没办法让两个客户端直接通信,进行媒体协商。因此我们通常需要一个双方都可以访问......