前言

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

常用的元素判断方法

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()

文章转自:https://www.cnblogs.com/yoyoketang/p/17197275.html