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

前言

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

常用的元素判断方法

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 定位的区别这篇有介绍https://www.cnblogs.com/yoyoketang/p/17190635.html

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>

代码示例

    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) # 是否可见

使用示例

# 上海悠悠 wx:283340479  
# blog:https://www.cnblogs.com/yoyoketang/
    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()

Built with Hugo
Theme Stack designed by Jimmy