首页 > 编程语言 >python+playwright 学习-24 判断页面元素状态的几种方式

python+playwright 学习-24 判断页面元素状态的几种方式

时间:2023-05-04 11:31:51浏览次数:60  
标签:24 playwright checked python enabled selector locator str page

前言

在操作元素之前,可以先判断元素的状态。判断元素操作状态也可以用于断言。

常用的元素判断方法

page对象调用的判断方法, 传一个selector 定位参数

  • page.is_checked(selector: str) # checkbox or radio 是否选中
  • page.is_disabled(selector: str) # 元素是否可以点击或编辑
  • page.is_editable(selector: str) # 元素是否可以编辑
  • page.is_enabled(selector: str) # 是否可以操作
  • page.is_hidden(selector: str) # 是否隐藏
  • page.is_visible(selector: str) # 是否可见

locator 对象调用的判断方法

  • locator.is_checked()
  • locator.is_disabled()
  • locator.is_editable()
  • locator.is_enabled()
  • locator.is_hidden()
  • locator.is_visible()

元素句柄 的判断方法

  • element_handle.is_checked()
  • element_handle.is_disabled()
  • element_handle.is_editable()
  • element_handle.is_enabled()
  • element_handle.is_hidden()
  • element_handle.is_visible()

元素句柄(element_handle)是通过page.query_selector()方法调用返回的ElementHandle ,这种一般不常用.
关于元素句柄和locator 定位的区别这篇有介绍

locator 定位后判断元素

locator 对象调用的判断方法

  • locator.is_checked()
  • locator.is_disabled()
  • locator.is_editable()
  • locator.is_enabled()
  • locator.is_hidden()
  • locator.is_visible()

is_checked() 用于判断checkbox or radio 的状态是否被选中

<div>
           <label>性别:
               <input type="radio" name="sex" id="man" checked>男
               <input type="radio" name="sex" id="woman">女
               <input type="radio" name="sex" id="no" disabled>人妖
           </label>
       </div>
       <div>
           <label>标签:
               <input type="checkbox" id="a1"> 旅游
               <input type="checkbox" id="a2">看书
               <input type="checkbox" id="a3" checked >学习
               <input type="checkbox" id="a4" checked disabled>学python
           </label>
       </div>

python+playwright 学习-24 判断页面元素状态的几种方式_代码示例

代码示例

print(page.locator('#man').is_checked()) # checked
    print(page.locator('#man').is_enabled())
    print(page.locator('#no').is_checked())
    print(page.locator('#no').is_enabled())  # disabled

返回结果

True
True
False
False

page对象调用的判断方法

page对象调用的判断方法, 传一个selector 定位参数

  • page.is_checked(selector: str) # checkbox or radio 是否选中
  • page.is_disabled(selector: str) # 元素是否可以点击或编辑
  • page.is_editable(selector: str) # 元素是否可以编辑
  • page.is_enabled(selector: str) # 是否可以操作
  • page.is_hidden(selector: str) # 是否隐藏
  • page.is_visible(selector: str) # 是否可见

使用示例


    print(page.is_checked('#a3'))
    print(page.is_enabled('#a3'))
    print(page.is_checked('#a4'))
    print(page.is_enabled('#a4'))

运行结果

True
True
True
False

总的来说有2种方式判断元素 page.is_xx()locator.is_xxx()



标签:24,playwright,checked,python,enabled,selector,locator,str,page
From: https://blog.51cto.com/u_15249893/6242041

相关文章

  • 【Python】orm 按日期分类
    1.Trunc#获取每个月count总数fromdjango.db.modelsimportSumfromdjango.db.models.functionsimportTruncmodels.NafpComplete.objects.filter().annotate(month=Trunc('point_time','month')).values('month').annotate(count=Sum('......
  • 【访问者设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
    简介访问者模式(VisitorPattern)是一种行为型模式。它封装一个访问者类,把各元素类的操作集合起来,目的是将数据结构与数据操作分离。在不改变原有元素类数据结构的前提下,改变了元素类的执行算法。当某些较为稳定的东西(数据结构或算法),不想直接被改变但又想扩展功能,这时候适合用访问......
  • Python网络爬虫原理及实践 | 京东云技术团队
    作者:京东物流田禹1网络爬虫网络爬虫:是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫相关技术和框架繁多,针对场景的不同可以选择不同的网络爬虫技术。2Scrapy框架(Python)2.1.Scrapy架构2.1.1.系统架构2.1.2.执行流程总结爬虫开发过程,简化爬虫执行流程如下图......
  • python pandas 生成excle
    首先需要导包需要两个包分别是pandas和openpyxlpipinstall-i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com pandaspipinstallopenpyxl 创建Python开始写入#使用pandas生成xlsx的excel文件importpandasaspdimportpandasaspddata=......
  • python+playwright 学习-60 在打开的多个标签页窗口灵活切换
    前言当页面打开了多个标签页后,如何切换到自己需要的标签页上呢?使用场景以百度首页为例,当打开多个标签页后,如何切换到自己想要的页面上操作。通过context.pages可以获取到所有的page对象,每一个page对象就代表一个标签页实例fromplaywright.sync_apiimportsync_playwrigh......
  • 学习python太枯燥?一招让你爱上学python!
    如果你认为学习编程需要看枯燥乏味的教科书,那么你就大错特错了!现在,有一种全新的学习方式,让你在欣赏流行漫画的同时轻松掌握Python编程的技巧!![image-20230504071523860](http://pic.lovelifelovedream.com/typora/image-20230504071523860.png)《看漫画学Python》是一本独特而又......
  • 通过Python进行MySQL表信息统计
    在上一篇文章中简单的介绍了使用python-mysql-replication来解析MySQLbinlog来完成实时统计的业务,当然,在现实的业务中不可能用的那么简单的。啰哩八说今天的目的不是介绍真实的业务场景如何使用python-mysql-replication,而是推出一枚<MySQL表信息统计>小工具(笔者通过......
  • python中如何使两个序列相加不改变内存地址的几种方式
    #方式1a=[1,2,3]print(a)#4551311680a.extend([4,5])print(a)#4551311680#方式2b=[1,2,3]print(b)#4494299456b+=[4,5,6]print(b)#4494299456#重点讲解方式2+=的方式是因为内部实现了__iadd__()魔法方法,内部行为类似于a.extend(b)。但是要区别于b=......
  • Python_16 配置文件与封装
    一、查缺补漏 1.ctrl+alt+L规范格式 2.Python使用ini&yaml配置文件 http://testingpai.com/article/1621245437855 3.如何进行SDK的测试 https://www.cnblogs.com/winson-317/p/9896645.html 4.Shift+alt+E执行选中的代码二、配置文件分类三种配置文件效率一致,p......
  • Python实现艾宾浩斯背单词功能
    本项目主要是通过在事先准备好的excel单词文件中每天抽取单词,并反复使用QQ邮箱发送到自己的邮箱里提醒自己有一定规律的背单词,项目最大的难点有三。对于csv文件的对应切片任务等操作对于日志的记录艾宾浩斯记忆法是一个周期性的过程,需要反复的计算。当然,由于这个项目的文件还是......