前言
在操作元素之前,可以先判断元素的状态。判断元素操作状态也可以用于断言。
常用的元素判断方法
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>
代码示例
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()