• Select下拉框操作


    1、认识Select框,

    • 平时遇到下图中的情况,通过下拉列表选择的信息
    • select的标签属性:<select class="form-control" id="corporationName" style="margin-bottom:4px;" name="corporationName" data-bv-field="corporationName">
    • 存在两个选项值:<option value="函数兔008集团" selected="">函数兔008集团</option>、<option value="金石基金测试0314日注册">金石基金测试0314日注册</option>

    2、定位方法-二次定位

    • 先定位select框,在定位select的选项:查看该代码,id和name都有重复的,不方便定位,选择了xpath定位方法
    • 代码如下:
    from selenium import webdriver
    import time
    
    driver = webdriver.Chrome()
    driver.get("http://djuat.dtfunds.com/fund-jsqyweb/index.html")
    time.sleep(2)
    driver.maximize_window()
    driver.find_element_by_name("mobile").send_keys("13770506771")
    time.sleep(1)
    select = driver.find_element_by_xpath("//select")
    time.sleep(1)
    #先定位select,再操作选项,
    select.find_element_by_xpath("//select/option[2]").click()
    time.sleep(1)
    select.find_element_by_xpath("//select/option[1]").click()
    time.sleep(1)
    
    #也可以直接操作,
    driver.find_element_by_xpath("//select").find_element_by_xpath("//select/option[2]").click()
    time.sleep(1)
    driver.quit()

    3、定位方法-直接定位

    • 直接通过xpath定位到元素直接操作:driver.find_element_by_xpath("//select/option[2]").click()

    4、Select模块-index

    • selenium还提供了更高级的玩法,导入select模块直接用索引来定位
    • 先导入:from selenium.webdriver.support.select impot  Select
    • 然后通过索引来选择对应的选项(index从0开始)
    • 代码:
    from selenium import webdriver
    from selenium.webdriver.support.select import Select
    import time
    
    driver = webdriver.Chrome()
    driver.get("http://djuat.dtfunds.com/fund-jsqyweb/index.html")
    time.sleep(2)
    driver.maximize_window()
    driver.find_element_by_name("mobile").send_keys("13770506771")
    time.sleep(1)
    select = driver.find_element_by_xpath("//select")
    #通过索引来定位
    Select(select).select_by_index(1)
    time.sleep(1)
    Select(select).select_by_index(0)
    time.sleep(1)
    Select(select).select_by_index(1)
    time.sleep(1)
    driver.quit()

    5、Select模块-value

    • 除了使用index方法定位,还有通过value值来定位
    • 代码:
    select = driver.find_element_by_xpath("//select")
    Select(select).select_by_value("函数兔008集团")
    time.sleep(1)
    Select(select).select_by_value("金石基金测试0314日注册")
    time.sleep(1)
    Select(select).select_by_value("函数兔008集团")

    6、Select模块-text

    • 除了使用index方法定位,还有通过text值来定位
    • 代码:
    #通过text来定位
    Select(select).select_by_visible_text("函数兔008集团")
    time.sleep(1)
    Select(select).select_by_visible_text("金石基金测试0314日注册")
    time.sleep(1)
    Select(select).select_by_visible_text("函数兔008集团")

    7、Select模块-其他方法

    • 除了使用index方法定位,还有通过text值来定位
    • 以下方法没有使用过
    deselect_all() :取消所有选项
    deselect_by_index() :取消对应 index 选项
    deselect_by_value() :取消对应 value 选项
    deselect_by_visible_text() :取消对应文本选项
    first_selected_option() :返回第一个选项
    all_selected_options() :返回所有的选项
  • 相关阅读:
    BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊(分块)
    BZOJ 2648 SJY摆棋子(KD Tree)
    Codeforces Round #441 D. Sorting the Coins(模拟)
    HDU 3400 Line belt (三分套三分)
    HDU 5919 Sequence II(主席树+区间不同数个数+区间第k小)
    HDU 5985 Lucky Coins(概率)
    HDU 5988 Coding Contest(浮点数费用流)
    HDU 5792 World is Exploding(树状数组+离散化)
    HDU 5791 Two(LCS求公共子序列个数)
    HDU 5787 K-wolf Number(数位dp)
  • 原文地址:https://www.cnblogs.com/ygzy/p/9564233.html
Copyright © 2020-2023  润新知