美文网首页
『心善渊』Selenium3.0基础 — 17.Selenium

『心善渊』Selenium3.0基础 — 17.Selenium

作者: 繁华似锦Fighting | 来源:发表于2020-08-27 00:07 被阅读0次

    页面中的<select></select>标签,就代表该元素是一个下拉菜单。

    1、使用Selenium中的Select类来处理下拉菜单(推荐)

    可以使用Select类中提供的方法来操作页面中的下拉菜单。

    操作步骤

    # 1.导入包Select类
    from selenium.webdriver.support.select import Select
    
    # 2.定位下拉菜单元素
    
    # 3.把定位的下拉菜单元素存储到Select类中
    select = Select(下拉菜单元素)
    
    # 4.1 通过value属性来选择,option标签的一个属性值
    select.select_by_value('属性值')
    
    # 4.2 通过选项索引(index)值选择 索引从0开始
    select_by_index(索引值)
    
    # 4.3 通过选项名称选择
    select_by_visible_text(选择名称)
    

    示例:

    页面代码片段

    <!DOCTYPE html>
    <html lang="zh-cn">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
    <select name="selecta" id="selectA">
        <option value="bj">A北京</option>
        <option value="sh">A上海</option>
        <option value="gz">A广州</option>
        <option value="cq">A重庆</option>
    </select>
    </body>
    </html>
    

    脚本代码:

    """
    1.学习目标:
        掌握selenium中Select类使用
    2.语法(操作步骤)
        2.1导入Select类
        2.2 定位下拉框的select标签
        2.3 使用Select类提供的方法选择选项
            2.3.1 通过选项的value值选择
                select_by_value("value属性值")
            2.3.2 通过选项索引值选择 索引从0开始
                select_by_index(索引值)
            2.3.3 通过选项名称选择
                select_by_visible_text(选择名称)
    3.需求
        在页面中,使用Select类操作下拉框
    """
    # 1.导入selenium
    from selenium import webdriver
    from time import sleep
    import os
    from selenium.webdriver.support.select import Select
    
    # 2.打开浏览器
    driver = webdriver.Chrome()
    
    # 3.打开页面
    url = "file:///" + os.path.abspath("./3.html")
    driver.get(url)
    sleep(2)
    # 4.使用Select类操作下拉框
    # 4.1 定位下拉框标签
    selectA = driver.find_element_by_id("selectA")
    
    # 4.2 通过Select类选择选项
    # 创建下拉框对象
    # Select(定位下拉框的元素--select标签元素)
    select = Select(selectA)
    
    # 通过value值选择选项(选择上海)
    select.select_by_value("sh")
    sleep(2)
    
    # 通过index值选择选项,索引从0开始(选择广州)
    select.select_by_index(2)
    sleep(2)
    
    # 通过text值选择选项(选择北京)
    select.select_by_visible_text("A北京")
    sleep(2)
    
    # 5.关闭浏览器
    driver.quit()
    
    

    2、下拉菜单对象的其他操作(了解)

    调用方法选择下拉框中的选项

    操作 说明
    all_selected_options 查看所有已选
    first_selected_option 查看第一个已选
    is_multiple 查看是否是多选
    options 查看选项元素列表

    取消选择:

    操作 说明
    deselect_by_value() 通过option标签的value属性来选择
    deselect_by_index() 通过选项索引(index)值选择 索引从0开始
    deselect_by_visible_text() 通过选项名称选择

    示例:

    同上边示例,具体看获得的select下拉菜单元素对象的操作。

    # 1.导入selenium
    from selenium import webdriver
    from time import sleep
    import os
    from selenium.webdriver.support.select import Select
    
    # 2.打开浏览器
    driver = webdriver.Chrome()
    
    # 3.打开页面
    url = "file:///" + os.path.abspath("./3.html")
    driver.get(url)
    sleep(2)
    
    # 4.使用Select类操作下拉框
    # 4.1 定位下拉框标签
    selectA = driver.find_element_by_id("selectA")
    
    # 4.2 通过Select类选择选项
    # 创建下拉框对象
    # Select(定位下拉框的元素--select标签元素)
    select = Select(selectA)
    
    """
    我们就以first_selected_option举个例子,
    其他的操作同理,自己尝试。
    """
    # 5.下拉框元素对象的操作
    # 下拉框对象直接调用操作
    # 5.1 打印下拉框第一个已选选项
    print("打印第一个已选选项", select.first_selected_option)
    
    # 5.2 查看第一个已选选项对象的方法
    print(dir(select.first_selected_option))
    
    # 5.3 通过上一步,我们查看选项对象有一个text方法
    # 是获取选项的名称
    print(select.first_selected_option.text)  # A北京
    
    # 6.关闭浏览器
    driver.quit()
    

    3、通过元素二次定位方式操作下拉菜单(重点)

    了解元素二次定位

    先定位下拉菜单,再定位菜单中的具体元素,对下拉菜单进行二次定位。

    类似于XPathcss_selector层级定位。

    在实际测试过程中,一个页面可能有多个属性基本相同的元素,如果要定位到其中的一个,这时候可以使用层级定位或者元素的二次定位。先定位到父元素,然后再通过父元素定位子孙元素。

    示例:

    页面代码片段

    <!DOCTYPE html>
    <html lang="zh-cn">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
    <select name="selecta" id="selectA">
        <option value="bj">A北京</option>
        <option value="sh">A上海</option>
        <option value="gz">A广州</option>
        <option value="cq">A重庆</option>
    </select>
    </body>
    </html>
    

    脚本代码:

    """
    1.学习目标:
        掌握二次定位的方法
    2.语法(操作步骤)
        2.1 定位父标签
        2.2 通过父标签定位子标签
    3.需求
        在页面中,使用二次定位方法,操作下拉菜单
    4.总结
        二次定位:通过元素找另外元素。
        和xpath,css_selector层级定位类似。
    
        除了元素的基本操作外,元素也可以定位其他元素。
        元素.click()/clear()/send_keys()/find_element_xxx
    
        注意:二次定位不止使用在下拉菜单操作中。
    """
    # 1.导入selenium
    from selenium import webdriver
    from time import sleep
    import os
    
    # 2.打开浏览器
    driver = webdriver.Chrome()
    
    # 3.打开页面
    url = "file:///" + os.path.abspath("./3.html")
    driver.get(url)
    sleep(2)
    
    # 4.二次定位操作下拉菜单
    # 4.1 先定位父级元素--select标签元素
    select = driver.find_element_by_name("selecta")
    
    # 4.2 通过select标签元素定位option子标签
    option = select.find_element_by_css_selector("option[value='gz']")
    
    # 4.3 点击选择的选项
    option.click()
    sleep(2)
    
    # 5.关闭浏览器
    driver.quit()
    
    

    相关文章

      网友评论

          本文标题:『心善渊』Selenium3.0基础 — 17.Selenium

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