• selenium---下拉框处理(select)


      web自动化中,常见的场景还有一个下拉框的选择,哪么在selenium中如何做下拉框的操作呢?

    select

    select在HTML中表示元素名,可创建单选或多选菜单。

    HTML中select长什么样子:

    select在HTML中元素名,下面有选择操作,选择内容在select中包含

    <html>
    
    <body>
    
    <form>
    <center>
    <select name="anjing">
    <option value="boke">请关注安静博客</option>
    <option value="study">今天学习了吗?</option>
    <option value="daily">今天看安静博客了吗?</option>
    <option value="like">点赞了吗?</option>
    <option value="attention">关注了吗?</option>
    </center>
    </select>
    </form>
    
    </body>
    </html>

    select操作方法

    selenium中想要操作下拉框需要导入新的模块 from selenium.webdriver.support.select import Select 

    Select有以下操作方法:

    方法 说明
    select_by_index() 通过索引定位
    select_by_value()  通过value值定位
    select_by_visible_text() 通过文本值定位
    deselect_all() 取消所有选项
    deselect_by_index()  取消对应index选项
    deselect_by_value()   取消对应value选项
    deselect_by_visible_text()  取消对应文本选项
    first_selected_option()  返回第一个选项
    all_selected_options()  返回所有的选项
    options() 返回所以的选择项
    all_selected_options() 返回所以已选中的选择项
    first_selected_option() 返回选中的第一个选择项

     

     

     

     

    小试牛刀

    方法也认识了,select也知道是什么样子的了,那么我们开始进行操作

    1、想要操作select,首先定位到select上,然后进行实例化

    2、通过Select进行通过下标,value,text进行定位下拉框

    3、加入判断预期值是否切换到下拉框中

    from selenium import webdriver
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.select import Select
    from selenium.webdriver.common.by import By
    import time
    driver = webdriver.Chrome()
    path = r'E:webselect.html'
    driver.get(path)
    # 通过显示等待的方法判断元素是否出现
    WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.NAME,"anjing")))
    select = driver.find_element_by_name('anjing')
    # 根据下标进行选择,从0开始
    Select(select).select_by_index(1)
    time.sleep(2)
    # 根据value的值选择
    Select(select).select_by_value('daily')
    time.sleep(2)
    # 根基text选择
    Select(select).select_by_visible_text('关注了吗?')
    time.sleep(2)
    # 判断选择是否预期
    WebDriverWait(driver,20).until(EC.element_located_to_be_selected((By.XPATH,'//*[contains(text(),"关注了")]')))

    展示图:

    这里安静主要通过一个小的例子,然后如何通过Selenium操作下拉框的小案例。这里安静提示大家,如果遇到哪些没有见过的库,可以去看看源码,其实源码中已经写的很清楚了。

    这里安静写的文章如果对您有帮助,点个关注,持续更新。不懂的或者写错的地方,可以下方留言。

  • 相关阅读:
    [CQOI2011]放棋子
    [JSOI2015]染色问题
    [ZJOI2016]小星星
    [NOI2018]你的名字
    bzoj2393 Cirno的完美算数教室
    [CQOI2012]局部极小值
    CF768F Barrels and boxes
    bzoj4402 Claris的剑
    烽火SATA SSD DSS200-B
    添加防火墙规则
  • 原文地址:https://www.cnblogs.com/qican/p/13521606.html
Copyright © 2020-2023  润新知