美文网首页
python3+selenium自动化测试-下拉选择框13

python3+selenium自动化测试-下拉选择框13

作者: C1R2 | 来源:发表于2020-09-04 22:26 被阅读0次

    (13)下拉选择框
    selenium的下拉选择框。我们通常会遇到两种下拉框,一种使用的是html的标签select,另一种是使用input标签做的假下拉框。
    标签select:需要用到Select类,先要导入select方法,
    from selenium.webdriver.support.select import Select
    input标签:通常的处理方式与其他的元素类似,点击或使用JS等。

    认识一下select下拉框选择:
    <select id="nr" name="NR">
    <option selected="" value="10">每页显示10条</option>
    <option value="20">每页显示20条</option>
    <option value="50">每页显示50条</option>

    定位:
    1、通过select选项的索引来定位选择对应选项(从0开始计数),如选择第三个选项:select_by_index(2)
    2、通过选项的value值来定位,select_by_value("20")
    3、通过选项的文本内容来定位。select_by_visible_text("每页显示50条")

    # coding:utf-8
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.support.select import Select
    driver = webdriver.Firefox()
    url = "https://www.baidu.com"
    driver.get(url)
    driver.implicitly_wait(20)
    # 鼠标移动到“设置”按钮
    mouse = driver.find_element_by_link_text("设置")
    ActionChains(driver).move_to_element(mouse).perform()
    driver.find_element_by_link_text("搜索设置").click()
    # 通过text:select_by_visible_text()
    s = driver.find_element_by_id("nr")
    Select(s).select_by_visible_text("每页显示50条")
    
    # # 分两步:先定位下拉框,再点击选项
    # s = driver.find_element_by_id("nr")
    # s.find_element_by_xpath("//option[@value='50']").click()
    
    # # 另外一种写法
    # driver.find_element_by_id("nr").find_element_by_xpath("//option[@value='50']").click()
    
    # # 直接通过xpath定位
    # driver.find_element_by_xpath(".//*[@id='nr']/option[2]").click()
    
    # # 通过索引:select_by_index()
    # s = driver.find_element_by_id("nr") 
    # Select(s).select_by_index(2) # 实例化Select(s)
    
    # # 通过value:select_by_value()
    # s = driver.find_element_by_id("nr")
    # Select(s).select_by_value("20")
    
    s1 = Select(driver.find_element_by_id('nr'))
    # 查看一个select所有的选项
    for select in s1.options:
        print select.text
    # 查看我已选中的选项,如果支持多项的select   
    for select in s1.all_selected_options:
        print select.text
    
    

    Select提供了三种选择方法
    select_by_index(index) ——通过选项的顺序,第一个为 0
    select_by_value(value) ——通过value属性
    select_by_visible_text(text) ——通过选项可见文本

    同时,Select提供了四种方法取消选择
    deselect_by_index(index) --取消对应index选项
    deselect_by_value(value) --取消对应value选项
    deselect_by_visible_text(text) --取消对应文本选项
    deselect_all() --取消所有选项

    Select为你提供了相应的方法(或者应该说是属性了),用来查看选中了哪一项:
    options ——提供所有的选项的列表,其中都是选项的WebElement元素
    all_selected_options ——提供所有被选中的选项的列表,其中也均为选项的WebElement元素
    first_selected_option ——提供第一个被选中的选项,也是下拉框的默认值

    参考链接
    https://www.cnblogs.com/yoyoketang/p/6128636.html
    https://blog.csdn.net/huilan_same/article/details/52246012

    相关文章

      网友评论

          本文标题:python3+selenium自动化测试-下拉选择框13

          本文链接:https://www.haomeiwen.com/subject/yiqpsktx.html