首页 > 编程语言 >python+playwright 学习-38.checkbox和radio 相关操作

python+playwright 学习-38.checkbox和radio 相关操作

时间:2023-03-27 12:25:17浏览次数:59  
标签:woman playwright checked python checkbox locator 38 radio page

前言

单选框和复选框相关操作总结
locator.click() 点击操作
locator.check() 选中
locator.uncheck() 不选中
locator.set_checked() 设置选中状态
locator.is_checked() 判断是否被选中

使用场景

radio 和 checkbox 使用场景

       <div>
           <label>性别:
               <input type="radio" name="sex" id="man" checked>男
               <input type="radio" name="sex" id="woman">女
           </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" >学python
           </label>
       </div>

radio 单选操作

radio 是单选,如果男已经是选择状态,那么点击它是不会改变状态的,只能点另外一个radio 改变状态。

方法1:click() 点击

    # radio 操作
    status1 = page.locator('#man').is_checked()
    print(status1)
    # 选择 女
    page.locator('#woman').click()
    print(page.locator('#woman').is_checked())

方法2: check()

 # 选择 女
    page.locator('#woman').check()
    print(page.locator('#woman').is_checked())

方法3: set_checked()需传checked 参数,布尔值

# 选择 女
    page.locator('#woman').set_checked(checked=True)
    print(page.locator('#woman').is_checked())

另外一种写法, 调用page对象相关方法

page.check('#woman')

page.set_checked('#woman', checked=True)

需注意的是,如果男本身就是选择状态,去设置unchecked 状态,会报错: Clicking the checkbox did not change its state

page.locator('#man').uncheck()

报错内容

    result = next(iter(done)).result()
playwright._impl._api_types.Error: Clicking the checkbox did not change its state
=========================== logs ===========================
waiting for locator("#man")

checkbox 复选框

checkbox 复选框跟 radio 操作的区别在于,如果已经被选择了,再点击会被取消选中,所以不会有前面的报错。

click 是点击操作,未选中的时候,点击就会被选中。

    # checkbox 操作
    page.locator('#a1').click()
    print(page.locator('#a1').is_checked())

如果想让元素必须是选择状态(不管之前有没被选中),可以使用check() 或 set_checked() 方法

    page.locator('#a1').check()
    print(page.locator('#a1').is_checked())

set_checked() 方法

   # checkbox 操作
    page.locator('#a1').set_checked(checked=True)
    print(page.locator('#a1').is_checked())

批量选中checkbox

定位全部CheckBox 批量选中

  # checkbox 操作
    box = page.locator('[type="checkbox"]')
    for item in box.all():
        item.check()


2021最新《Playwright+Python自动化测试》点我 ->立即参与
联系微信:283340479

标签:woman,playwright,checked,python,checkbox,locator,38,radio,page
From: https://www.cnblogs.com/yoyoketang/p/17261123.html

相关文章

  • Python 日志记录
    #coding=utf-8importosimportsys,pdbimportlogbook#pipinstallLogbookfromlogbookimportLogger,StreamHandler,FileHandler,TimedRotatingFileHandlerfrom......
  • Python list列表添加元素
    Pythonappend()方法添加元素append()方法用于在列表的末尾追加元素,该方法的语法格式如下:listname.append(obj)其中,listname表示要添加元素的列表;obj表示到添加到列......
  • python 类的方法与普通函数的区别
    引用菜鸟教程中所说:类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,按照惯例它的名称是self。下面我就写了个类的构造方法和类的方法,......
  • python pandas保存 。dta文件报错:UnicodeEncodeError: 'latin-1' codec can't encode
    pandas保存.dta文件时报错:UnicodeEncodeError:'latin-1'codeccan'tencodecharactersinposition0-2:ordinalnotinrange(256)importpandasaspddf=pd.r......
  • python+playwright 学习-37.如何在已经打开的浏览器上继续操作,绕过登录验证码
    前言有些网站的安全级别比较高,你可能想绕过登录验证,先手工打开浏览器操作登录,让playwright继续在你已经打开的浏览器上操作。selenium是可以做到这点,那么playwright也可......
  • python模块导入和帮助
    目录模块导入和帮助下载和导入模块帮助常用帮助HELP文档模块导入和帮助下载和导入python‘sstandardlibraryisamazingpython模块:模块就是保存在一个单独文件当......
  • Python - pandas 之常用代码块[转]
    原文:40UsefulPandasSnippetsPandassnippetsthatcomeinhandyindataanalysiswork-2022.04.20相关:Python-pandas之csv文件读取与写入-AIUAIPytho......
  • Python装饰器
    装饰器实质上就是一个python函数,在保证原始业务代码不做任何修改的情况下利用切面的原则动态地增加额外的操作功能。deflogging(func):#接收一个当前执行函数或方法......
  • python工程里面的类型的思考
    虽然我的工程语言是python语言,在工程搭建过程中非常注意类型提示的问题。关于方法的方法的返回值类型的问题:常用的方式是在函数/方法书写一些尖头+类型,这样调用方能很方......
  • Python3.0 新特性
    这篇文章主要介绍了相比于python2.6,python3.0的新特性。更详细的介绍请参见python3.0的文档。CommonStumblingBlocks本段简单的列出容易使人出错的变动。  *prin......