zoukankan      html  css  js  c++  java
  • selenium常用操作之下拉框操作

    下拉框操作:

          一般下拉框适用场景:在新增时有下拉框选项,在二级联动或多级联动有下拉(比如:在选择省市县时的多级联动下拉、日期控件等)。

    一般下拉框功能有以下两个:

          1.菜单栏-点击其中的某个链接跳转

        2.对下拉列表的元素进行操作。

          下拉框选择都有select的标签属性,存在两个属性select和option。有的呈现的是下拉框样式但没有select属性的比如说或ul/li。

      

    思路:

    1.等待下拉列表和下拉列表出现

    2.对下拉列表的元素进行操作

    下拉框操作流程:

    1.获取所有的下拉列表值,然后用循环去匹配相同的值;

    2.通过text的内容来找到下拉列表的某个值

    示例代码:

    #等待下拉框元素出现后点击
    WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//a[contains(text(),"课程")]')))
    driver.find_element_by_xpath('//a[contains(text(),"课程")]').click()

    3.如果是select/option组合,则可以使用Select类来处理。

    示例代码:

    from selenium.webdriver.common.action_chains import ActionChains
    #1.实例化鼠标类
    ac=ActionChains(driver)
    #2.调用各种鼠标行为后,调用perform()来执行
    ac.move_to_element_with_offset(driver.find_element_by_xpath('//div[@id="u"]/*[@name="tj_login"]')).perform()
    from selenium.webdriver.support.ui import Select
    #1.实例化select类
    select=Select(driver.find_element_by_id("su"))
    #2.根据下标来选择
    select.select_by_index(2)
    #3.根据option的value值来选择
    select.select_by_visible_text("高级搜索")
    

      

    以下是网上其他文章中介绍的。可以参考下:

         其类型有:

          ①单选下拉框,可以选择一个元素。

          ②多选下拉框,可以选择多个元素。

         定位方法:

          ①直接定位

          ②二次定位。先定位到select框,再定位到select选项。

          ③导入Select模块(推荐使用) -- 根据属性或者索引来定位。

             先要导入Select方法     from selenium.webdriver.support.ui import Select 。

             然后通过索引:s = driver.find_element_by_id('nr')

                                      Select(s).select_by_index(2)

             通过value值定位:s = driver.find_element_by_id('nr')

                                           Select(s).select_by_value('20')

             通过text值来定位:s = driver.find_element_by_id('nr')

                                            Select(s).select_by_visible_text('宝马')

    下面附上ms.html代码截图:

           

    通过selenium实现:

    import time 

    from selenium import webdriver

    from selenium.webdriver.support.ui import Select    # 导入Select模块

    # 指定驱动

    driver = webdriver.Chrome(r"C:webdriverchromedriver.exe")

    # 打开网址

    driver.get('file:///C:/UsersAdministrator/PycharmProjects/1120/web_driver/lesson3/ms.html')

    # 获得相应的webElement

    select = Select(driver.find_element_by_id('multi'))

    # 先取消所有选择的选项

    select.deselect_all()

    # 根据text值定位

    select.select_by_visible_text('雅阁')

    select.select_by_visible_text('宝马 740')

    # 获得相应的webElement

    select = Select(driver.find_element_by_id('single'))

    # 根据value值定位

    select.select_by_value('male')

    driver.quit()

  • 相关阅读:
    ASP.NET MVC 1.0 + spring.net 1.2.0.20288 + NHibernate 2.0.1.4000整合笔记(三)——NHibernate配置
    ASP.NET MVC: 使用自定义 ModelBinder
    设计模式和重构的学习心得体验
    ASP.NET MVC 1.0 + spring.net 1.2.0.20288 + NHibernate 2.0.1.4000整合笔记(四)——整合asp.net mvc
    获取外键关联的实体对象
    Ado.net Entity Framework 中的多对多查询
    Oxite分析笔记之数据验证
    ASP.NET MVC 1.0 + spring.net 1.2.0.20288 + NHibernate 2.0.1.4000整合笔记(二)——spring.net配置
    WPF之依赖属性的继承
    WCF之传递较长字符串(参数)
  • 原文地址:https://www.cnblogs.com/123blog/p/12482797.html
Copyright © 2011-2022 走看看