• 自动化测试基础篇--Selenium select下拉框


    摘自https://www.cnblogs.com/sanzangTst/p/7681523.html

    一、什么是下拉框

    下拉框是多项选择项,选择其中一种,类似下面(以百度搜索设置为例)

    源代码如下所示:

    二、直接定位

    三、二次定位

    四、Select模块(index)

    1.除了上面介绍的两种简单的方法定位到select选项,selenium还提供了更高级的玩法,导入Select模块。直接根据属性或索引定位;

    2.先要导入select方法:from selenium.webdriver.support.select import Select;

    3.然后通过select选项的索引来定位选择对应选项(从0开始计数),如选择第三个选项:select_by_index(2)。

    五、Select模块(value)

    1.Select模块里面除了index的方法,还有一个方法,通过选项的value值来定位。每个选项,都有对应的value值,如:

    <select id="nr" name="NR">

    <option selected="" value="10">每页显示10条</option>

    <option value="20">每页显示20条</option>

    <option value="50">每页显示50条</option>

    2.第二个选项对应的value值就是"20":select_by_value("20")

    六、Select模块其它方法

    select_by_index()  :通过索引定位

    select_by_value()  :通过value值定位

    select_by_visible_text() :通过文本值定位

    deselect_all()          :取消所有选项

    deselect_by_index()     :取消对应index选项

    deselect_by_value()      :取消对应value选项

    deselect_by_visible_text() :取消对应文本选项

    first_selected_option()  :返回第一个选项

    all_selected_options()   :返回所有的选项

    七、参考代码

    复制代码
     1 #!/usr/bin/env python
     2 # -*- coding: utf-8 -*-
     3 # @File    : selectt.py
     4 # @Software: PyCharm
     5 from selenium import webdriver
     6 from selenium.webdriver.common.action_chains import ActionChains
     7 from selenium.webdriver.support.select import Select
     8 import time
     9 url = 'https://www.baidu.com'
    10 browser = webdriver.Firefox()
    11 browser.get(url)
    12 time.sleep(3)
    13 # 将鼠标指向设置按钮
    14 mouse = browser.find_element_by_link_text('设置')
    15 ActionChains(browser).move_to_element(mouse).perform()
    16 time.sleep(2)
    17 browser.find_element_by_link_text("搜索设置").click()
    18 # 直接通过元素定位
    19 # browser.find_element_by_xpath(".//*[@id='nr']/option[2]").click()
    20 
    21 # 先定位下拉框,在定位里面的内容
    22 # s = browser.find_element_by_id('nr')
    23 # s.find_element_by_xpath("//option[@value='50']").click()
    24 
    25 # 通过索引定位
    26 # s = browser.find_element_by_id('nr')
    27 # Select(s).select_by_index(2)
    28 
    29 # 通过value定位
    30 # s = browser.find_element_by_id('nr')
    31 # Select(s).select_by_value(20)
    32 
    33 # 通过visible_text定位
    34 s = browser.find_element_by_id('nr')
    35 Select(s).select_by_visible_text("每页显示20条")
    复制代码
     
  • 相关阅读:
    MIT自然语言处理第三讲:概率语言模型(第四部分)
    MIT自然语言处理第二讲:单词计数(第三部分)
    MIT自然语言处理第五讲:最大熵和对数线性模型(第二部分)
    MIT自然语言处理第二讲:单词计数(第四部分)
    MIT自然语言处理第三讲:概率语言模型(第一部分)
    MIT自然语言处理第二讲:单词计数(第二部分)
    MIT自然语言处理第五讲:最大熵和对数线性模型(第一部分)
    MIT自然语言处理第四讲:标注(第二部分)
    MIT自然语言处理第二讲:单词计数(第一部分)
    MIT自然语言处理第一讲:简介和概述(第二部分)
  • 原文地址:https://www.cnblogs.com/yuer20180726/p/10789295.html
Copyright © 2020-2023  润新知