• selenium判断元素可点击、可见、可选


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

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

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

    from selenium import webdriver
    import time
    from selenium.webdriver.common.by import By
    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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

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

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

    比如,登录场景,没有勾选协议,登录按钮处于置灰状态
    在这里插入图片描述
    对应代码:

    <button data-v-2135d823="" type="button" class="confirm-btn disabled">登录button>
    
    • 1

    勾选协议后,登录按钮变为可点击状态
    对应代码:

    <button data-v-2135d823="" type="button" class="confirm-btn">登录button>
    
    • 1

    此时测试用例中就可以断言未勾选协议,按钮是否置灰

    btnElm = driver.find_element(By.XPATH,'//div[@class='verify-phone']//button[contains(text(),'登录')]')
    result = btnElm.is_enabled()
    print(result)
    assert not result   #未勾选协议,按钮应该灰显
    
    • 1
    • 2
    • 3
    • 4

    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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    执行结果: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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

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

    总结:

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

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

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

  • 相关阅读:
    mysql的约束和表关系
    Facebook的魅力魔法:探访数字社交的奇妙世界
    餐饮行业软文怎么写吸引人?怎么打动人心
    mysql reset slave reset master
    外卖订餐系统,外卖点餐系统,外卖系统毕业设计
    c++图像腐蚀操作
    ​Mysql数据库查询好慢,除了索引,还能因为什么?
    eS6常用语法
    redis常用数据结构基本命令
    转债列表筛选及与正股数据整合:qlib+fastapi
  • 原文地址:https://blog.csdn.net/weixin_39843945/article/details/134038608