zoukankan      html  css  js  c++  java
  • selenium中的元素操作之下拉列表操作(四)

    下拉列表操作中分为两种:select、非select

    1、非select的下拉框操作

    非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
    
    # 创建一个Chrome对象
    driver = webdriver.Chrome()
    # 访问百度
    driver.get('http://baidu.com')
    # 非select下拉框操作
    # 找到百度首页的设置按钮
    driver.find_element_by_xpath('//div[@id="u1"]//a[@class="pf"]').click()
    # 等待下拉框的出现
    loc = (By.XPATH, '//a[text()="高级搜索"]')
    WebDriverWait(driver, 10).until(EC.visibility_of_element_located(loc))
    driver.find_element_by_xpath('//a[text()="高级搜索"]').click()
    
    # 退出浏览器
    driver.quit()

     2、select下拉框操作:

    接下来演示select下拉框操作;继续使用百度设置-高级搜索页面来演示,继续接上边代码继续写

    selenium中有一个select类,用来操作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
    from selenium.webdriver.support.select import Select
    import time
    
    
    # 创建一个Chrome对象
    driver = webdriver.Chrome()
    # 访问百度
    driver.get('http://baidu.com')
    # 非select下拉框操作
    # 找到百度首页的设置按钮
    driver.find_element_by_xpath('//div[@id="u1"]//a[@class="pf"]').click()
    # 等待下拉框的出现
    loc = (By.XPATH, '//a[text()="高级搜索"]')
    WebDriverWait(driver, 10).until(EC.visibility_of_element_located(loc))
    driver.find_element_by_xpath('//a[text()="高级搜索"]').click()
    
    # 设置等待,等待select下拉框出现
    select_loc = (By.XPATH, '//select[@name="ft"]')
    WebDriverWait(driver, 10).until(EC.visibility_of_element_located(select_loc))
    ele = driver.find_element(*select_loc)
    
    s = Select(ele)
    # 以下标的方法定位下拉框中的元素
    s.select_by_index(3)
    time.sleep(2)
    # 以value属性的方式定位下拉框的元素
    s.select_by_value('pdf')
    time.sleep(2)
    # 以文本的方式定位下拉框元素
    s.select_by_visible_text('所有格式')
    time.sleep(2)
    
    # 退出浏览器
    driver.quit()
  • 相关阅读:
    用例要素(非原创)
    边界接口设计
    项目管理平台架构
    内外网邮件自动转发
    Python技术公众号100天了
    将博客搬至CSDN
    Android项目真的要去做混淆(加密)处理
    【转】Android Gson的使用
    【转】在eclipse上使用Git
    在AChartEngine上绘图,手指标记当前位置
  • 原文地址:https://www.cnblogs.com/xingyunqiu/p/11547235.html
Copyright © 2011-2022 走看看