selenium元素操作--判断元素是否可点击、可选中、是否可见

1、判断元素是否可以点击

判断元素是否可以点击,WebElement对象调用is_enabled()

is_enabled()方法返回一个布尔值,若可点击返回:True。若不可点击则返回:False

driver = webdriver.Chrome()
# 打开百度
driver.get('https://www.baidu.com/')
# 定位百度首页的地图按钮
elm = driver.find_element_by_xpath('//*[@id="s-top-left"]/a[3]')
# 判断元素是否可以点击
answer = elm.is_enabled()
print(answer)
time.sleep(3)
driver.quit()

执行结果:True,故可以点击

在实际测试中,会遇到某些按钮置灰的情况:

比如,登录场景,只输入用户名或只输入密码时,“登录”按钮灰显,不可点击。

再比如,手机号码注册时,未输入正确长度手机号码时注册按钮置灰,对应代码:

<button class="btn submit"  disabled='' style="background:rgp(204,204,204);">下一步</button>

输入正确手机号码后,按钮变成可点击状态,对应代码:

<button class="btn submit" style="background:rgp(51, 172, 55);">下一步</button>

此时测试用例中就可以断言未输入正确长度手机号码时按钮是否置灰:

btnElm = driver.find_element_by_xpath('')
result = btnElm.is_enabled()
print(result)
assert not result   #手机号码未输入正确,按钮应该灰显

2、判断元素是否可见

判断元素是否可见,WebElement对象调用is_displayed()
is_displayed()方法返回一个布尔值,若可见则返回:True。若不可见则返回:False

driver = webdriver.Chrome()
# 打开百度
driver.get('https://www.baidu.com/')
# 定位百度首页的地图按钮
elm = driver.find_element_by_xpath('//*[@id="s-top-left"]/a[3]')
# 判断元素是否可见
answer = elm.is_displayed()
print(answer)
driver.quit()

执行结果:True,故可见

3、判断元素是否可被选中

判断元素是否被选中,WebElement对象调用is_selected()
is_selected()方法返回一个布尔值,若可见则返回:True。若不可见则返回:False

driver = webdriver.Chrome()
# 打开百度
driver.get('https://www.baidu.com/')
# 定位百度首页的地图按钮
elm = driver.find_element_by_xpath('//*[@id="s-top-left"]/a[3]')
# 判断元素是否可选中
answer = elm.is_selected()
print(answer)
driver.quit()

执行结果:False,说明未被选中

总结:

1、元素若有is_enabled属性,则是不可点击,否则就是可点击

2、元素若有is_display:none属性,则是不可见的,否则就是可见的

3、元素若有selected属性,则是已被选择

 

 

___________________________________________

参考博客:http://www.manongjc.com/detail/29-slnynphhxwzutgl.html

posted @ 2022-01-10 15:56  *无边落木萧萧下*  阅读(4509)  评论(0编辑  收藏  举报