16.Selenium【下拉框操作】模拟操作下拉框

一、前言

前端页面中,还有一种我们经常碰到的元素,他就是下拉框。这种元素我们其实有一种简单放法进行操作,先点击一下下拉框弹窗下拉列表,然后再点击选项。这种方法是使用两个点击动作达到选择下拉列表选项的目的。那有没有简单方法只需一步就能选择下拉项呢?这节课将解决这个疑问。

注:通过Select提供的方法和属性,我们可以对标准select下拉框进行任何操作,但是对于非select标签的伪下拉框,需要使用XPath定位。

二、学习目标

1.选择项选择

2.选择项取消选择

3.获取选择信息

三、知识点

地址示例:http://sahitest.com/demo/selectTest.htm

1.【选择项选择】

  • 按索引值选择

    #1.实例化select
    s = Select(driver.find_element_by_id("s1Id"))
    #2.按索引值选择
    s.select_by_index(1) #0,1,2,3...
    
  • 按value属性选择

    #1.实例化select
    s = Select(driver.find_element_by_id("s1Id"))
    #2.按value属性选择
    s.select_by_value('o2') #传value的值
    
  • 按标签文本选择

    #1.实例化select
    s = Select(driver.find_element_by_id("s1Id"))
    #2.按标签文本值
    s.select_by_visible_text('o3') #传标签文本值
    

2.【选择项反选】

注意:有一种特殊的select标签,即设置了multiple="multiple"属性的select,这种select框是可以多选的,取消操作只适用于添加了multiple的下拉框(可以多选),否则会报错

  • 按索引值取消选择

    #1.实例化select
    s = Select(driver.find_element_by_id("s4Id"))
    #2.按索引值选择
    s.select_by_index(1) #按索引值
    time.sleep(2)
    #3.按索引值取消选择
    s.deselect_by_index(1) #传标签文本值
    
  • 按value属性取消选择

    #1.实例化select
    s = Select(driver.find_element_by_id("s4Id"))
    #2.按value属性选择
    s.select_by_value('o2val') #按value属性
    time.sleep(2)
    #3.按value属性取消选择
    s.deselect_by_value('o2val') #按value属性
    
  • 按标签文本取消选择

    #1.实例化select
    s = Select(driver.find_element_by_id("s4Id"))
    #2.按标签文本选择
    s.select_by_visible_text('o3') #按标签文本
    time.sleep(2)
    #3.按标签文本取消选择
    s.deselect_by_visible_text('o3') #按标签文本
    
  • 全部取消选择

    #1.实例化select
    s = Select(driver.find_element_by_id("s4Id"))
    #2.按标签文本选择
    s.select_by_index(1) #按索引值
    s.select_by_value('o2val') #按value属性
    s.select_by_visible_text('o3') #按标签文本
    time.sleep(2)
    #3.按标签文本取消选择
    s.deselect_all() #全部取消
    

3.【获取选择信息】

我们还可以获取select标签对象的三个属性(注:不是方法):

#1.实例化select
s = Select(driver.find_element_by_id("s4Id"))
#2.按标签文本选择
s.select_by_index(1) #按索引值
s.select_by_value('o2val') #按value属性
s.select_by_visible_text('o3') #按标签文本
time.sleep(2)
#3.三个属性
s1 = s.options                  #提供所有的选项的列表,其中都是选项的WebElement元素
s2 = s.all_selected_options     #提供所有被选中的选项的列表,其中也均为选项的WebElement元素
s3 = s.first_selected_option    #提供第一个被选中的选项,也是下拉框的默认值
print(s1)
print(s2)
print(s3)
posted @ 2023-01-17 09:53  测开星辰  阅读(950)  评论(0编辑  收藏  举报