• selenium 常见操作,使用 select 类来处理 下拉列表操作


      下拉列表包括:非 select 元素 和 select 元素两种

    非 select 元素:通过文本值定位元素,建议直接进行点击操作

    • 下拉列表未显示属性值为:display:none
    • 下拉列表显示属性值为:display: block

    select 元素使用 select 类来处理

      是select 一定会有 option;通过下标方式选元素、value属性选元素、文本内容选元素

     需要引入 select 类:

    from selenium.webdriver.support.select import Select

    Select类里面的方法行为:

    • 初始化webelement传进来的是元素对象,并且是构造函数,必须是Select对象,如果不是会抛异常元素对象的标签名的小写不=select,就会抛出不期望的标签名异常
    • options:返回属于此选择标记的所有选项的列表
    • select_by_value:通过 value 值来获取 select 列表的标签名
    • select_by_index:通过 下标 来获取 select 列表的标签名
    • select_by_visible_text:通过 可见的文本内容 来获取 select
    from selenium import webdriver
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    import time
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.support.select import Select        # select元素操作类
    
    driver = webdriver.Chrome()
    
    driver.get("http://www.baidu.com")
    
    # 找到元素
    ele = driver.find_element_by_xpath('//div[@id="u1"]//a[@name="tj_settingicon"]')
    # # 1、鼠标悬浮操作,实例化
    ActionChains(driver).move_to_element(ele).pause(0.5).click(ele).perform()
    # ele.click()
    
    
    # 下拉列表:非select元素
    loc = (By.XPATH, '//a[text()="高级搜索"]')
    WebDriverWait(driver, 20).until(EC.visibility_of_element_located(loc))
    driver.find_element(*loc).click()
    
    # 下拉列表:select元素  Select类
    select_loc = (By.XPATH, '//select[@name="ft"]')
    WebDriverWait(driver, 20).until(EC.visibility_of_element_located(select_loc))
    ele = driver.find_element(*select_loc)
    
    # Select(driver.find_element(*select_loc)).select_by_index(3)
    # time.sleep(3)
    s = Select(ele)  # 实例化对象
    
    # 三种方式选择下拉属性:
    # 下标方式选元素
    s.select_by_index(3)
    # s.deselect_by_index()     # 不选中
    time.sleep(3)
    
    # value属性选元素
    s.select_by_value("all")
    # s.deselect_by_value()     # 不选中
    time.sleep(3)
    
    # 文本内容选元素:下拉框文本值内容
    s.select_by_visible_text("微软 Powerpoint (.ppt)")
    # s.deselect_by_visible_text("下拉框文本内容")     # 不选中

    *******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!******* 

  • 相关阅读:
    U3D+SVN: 两份相同资源放在不同目录下导致META的更改
    sceneManager.loadscene加载场景时不会主动去加载场景的依赖包,要手动加载或添加场景到build setting列表中
    android 屏幕适配
    android httpUrlConnection HttpClient
    android ndk
    android viewStub
    android 数字签名
    android mvc
    android OOM 内存溢出
    Aidl
  • 原文地址:https://www.cnblogs.com/shouhu/p/12221742.html
Copyright © 2020-2023  润新知