• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

博客园    首页    新随笔    联系   管理    订阅  订阅
selenium----select下拉框

  在做UI测试时经常会遇到下拉框,此时有两种方法处理:1.两次点击;2.使用select(下拉框处理模块)

引入路径:
  from selenium.webdriver.support.select import Select

select相关操作
首先定位到下拉框,再通过select定位下拉选项
s = driver.find_element_by_id('***')

通过select选项的索引来定位选择对应选项(从0开始计数)
Select(s).select_by_index(5)

通过选项的value属性来定位
Select(s).select_by_value('2')

通过选项的文本内容来定位
Select(s).select_by_visible_text('牡丹江')

返回一个选中的optionElement对象
Select(s).first_selected_option

返回所有选中的optionElement对象
Select(s).all_selected_options

取消所有选中的option
Select(s).deselect_all()

通过option的index来取消对应的option
Select(s).deselect_by_index(1)

通过value属性,来取消对应的option
Select(s).deselect_by_value('3')

通过option的文本内容,取消对应的option
Select(s).deselect_by_visible_text('3')

一、首先要引入ActionChains模块 

from selenium.webdriver.common.action_chains import ActionChains

二、先定位到顶级菜单,执行鼠标操作通过move_to_element将鼠标移到顶级菜单,再定位下拉菜单并点击
下面以百度首页为例子来说明:

打开百度--设置--搜索设置(鼠标悬浮菜单定位)--单选框定位--单选框定位--select下拉菜单定位--select下拉菜单定位--单选框定位--alert弹出框定位

from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains#引入函数模块
from selenium.webdriver.support.select import Select#引入函数模块
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com")#打开百度首页
sz = driver.find_element_by_link_text('设置')#先定位到顶级菜单
ActionChains(driver).move_to_element(sz).perform()#再将鼠标移动到顶级菜单:设置上面
driver.find_element_by_link_text('搜索设置').click()#最后定位下拉菜单元素并点击
time.sleep(3)
driver.find_element_by_id("s1_2").click()#单选框:搜索框提示 定位
driver.find_element_by_id('SL_1').click()#单选框:搜索语言范围 定位
Select(driver.find_element_by_id('nr')).select_by_value("20")#select下拉菜单定位,先定位到下拉框nr,再通过value定位下拉选项
Select(driver.find_element_by_id('issw1')).select_by_value('2')#select下拉菜单单定位
driver.find_element_by_id('sh_1').click()
driver.find_element_by_link_text('保存设置').click()
driver.switch_to.alert.accept()#alert弹出框"确认"

 

posted on 2019-06-10 16:01  搁浅小夕  阅读(2083)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3