金沙国际唯一官网网址 4

未分类

【www.2979.com】上边大家看一下selenium如哪个地区理下来菜单,选拔项是由此<select>中的<option>成分达成的

14 11月 , 2019  

from selenium.webdriver.support.ui import Select

金沙国际唯一官网网址 1

(二) Select类的功用及办法

为了测验以上的章程,从网络找的了二个简便的页面,来帮衬测量检验

from selenium import webdriver
import unittest
from selenium.webdriver.support.ui import Select
class Register(unittest.TestCase):
  ...省略setup(这段就不注释了)
    def test_register(self):
        card_type =['二代身份证','港澳通行证','台湾通行证','护照']
        card_type_options = []
        #定位证件类型字段,作为Select类的对象实例
        select_card_type = Select(self.driver.find_element_by_id('cardType'))
        #检查默认选项是否为'二代身份证'
        self.assertTrue(select_card_type.first_selected_option.text == '二代身份证')
        #页面提供的证件类型选项数量是否为4个
        self.assertEqual(4,len(select_card_type.options))
        #将页面上每个选项的文本值添加到 card_type_options[]
        for s in select_card_type.options:
            card_type_options.append(s.text)
        #检查页面上证件类型选项是否与预期一致
        self.assertListEqual(card_type,card_type_options)
        select_card_type.select_by_index(1) #选择索引为1的选项(港澳通行证)
        #检查选择港澳通行证时,是否显示出生日期字段
        self.assertTrue(self.driver.find_element_by_id('born_date').is_displayed())
        select_card_type.select_by_value('B') #选择value = 'B'的选项(护照)
        select_card_type.select_by_visible_text('二代身份证') #选择文本为 二代身份证的选项
   ...省略tearDown(这段就不注释了)

本着按text文本实行切换option属性示举例下。常用艺术

(一) Select类

<html>
<body>
    <form>
        <select name="cars">
            <option value="volvo">Volvo</option>
            <option value="saab">Saab</option>
            <option value="fiat" selected="selected">Fiat</option>
            <option value="audi">Audi</option>
        </select>
    </form>
</body>
</html>

 

上面是不包罗multiple 和 饱含 multiple 的二种样式 

 

使用first_selected_option(self)
来切换成第叁个option,该办法与select_by_index(0)实现的效劳等同,间接看一下代码实践效果,详细的就解释了

方法

简单说明

deselect_all()
清除多选下拉菜单和列表的所有选择项
deselect_by_index(index)
根据索引清除下拉菜单和列表的选择项
Index:要清除目标的索引
deselect_by_value(value)
清除和给定参数匹配的下拉菜单和列表的选择项
value:要清除目标选择项的value属性
deselect_by_visible_text(text)
清除和给定参数匹配的下拉菜单和列表的选择项
text:要清除目标选择项的文本值
select_by_index(index)
根据索引选择下拉菜单和列表的选择项
select_by_value(value)
选择和给定参数匹配的下拉菜单和列表的选择项
select_by_visible_text(text)
选择和给定参数匹配的下拉菜单和列表的选择项

最主要把Select方法总计了生龙活虎晃分成三大类:

下拉菜单和列表是通过HTML的<select>
成分完成的。选取项是经过<select>中的<option>成分达成的。使用前使用上面包车型地铁语句导入模块。

#-*- coding:utf-8 -*-
import time
from selenium import webdriver
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/hunk/Desktop/select.html')
time.sleep(2)   #默认option显示"Fiat"
S = Select(driver.find_element_by_name('cars')).first_selected_option
time.sleep(2)   #切换后option显示"Audi"
driver.quit()

 

  • select_by_index(self, index)  
       #以index属性值来搜寻相称的要素并选拔;
  • select_by_value(self, value)          
    #以value属性值来寻觅该option并选用;
  • select_by_visible_text(self, text)    
    #以text文本值来搜寻相称的要素并选择;
  • first_selected_option(self)               #筛选第三个option 选项

功能/属性

简单说明

all_selected_options
获取下拉菜单和列表中被选中的所有选项内容
first_selected_option
获取下拉菜单和列表的第一个选项
options
获取下拉菜单和列表的所有选项
#-*- coding:utf-8 -*-
import time
from selenium import webdriver
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/hunk/Desktop/select.html')
'''本示例中所有设置等待时间均为便于观察效果'''
time.sleep(1)
Select(driver.find_element_by_name('cars')).select_by_index(0)  #以索引选择
time.sleep(1) 
Select(driver.find_element_by_name('cars')).select_by_value('saab')  #以value属性值选择
time.sleep(1) 
Select(driver.find_element_by_name('cars')).select_by_visible_text('Mercedes') #以text 文本进行选择
time.sleep(2)
Select(driver.find_element_by_name('cars')).deselect_by_index(0)
time.sleep(1)
Select(driver.find_element_by_name('cars')).deselect_by_value('saab')  #以value属性值取消选择
time.sleep(1) 
Select(driver.find_element_by_name('cars')).deselect_by_visible_text('Mercedes') #以text 文本进行取消选择
time.sleep(1)
'''获取所有的option的text值,进行遍历通过text文本进行选择'''
Options = Select(driver.find_element_by_name('cars')).options #该方法下面会详细介绍,此处为了获取所有的options选项
for option in Options:
    Select(driver.find_element_by_name('cars')).select_by_visible_text(option.text)  #循环选择
time.sleep(1)
Select(driver.find_element_by_name('cars')).deselect_all()
time.sleep(1)
driver.quit()

(三卡塔 尔(英语:State of Qatar)  示例(检查12306注册页面包车型客车证书类型是不是与预期黄金年代致卡塔尔国

第风度翩翩大家透过index、value、text文本二种形式进行分选,然后再次按index、value、text
举办撤除,最终遍历全体的option循环采取,最终全体打消。

Select类是selenium的三个特定的类,用来与下拉菜单和列表交互作用。

#-*- coding:utf-8 -*-

from selenium import webdriver
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/hunk/Desktop/select.html')
S = Select(driver.find_element_by_name('cars')).options  #实例化Select,并且获取所有的options
for option in S:  #遍历options
    print(option.text) #获取option值
driver.quit()

示例:

#-*- coding:utf-8 -*-
import time
from selenium import webdriver
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/hunk/Desktop/select.html')
time.sleep(2)   #默认option显示"Fiat"
S = Select(driver.find_element_by_name('cars')).select_by_visible_text ('Audi')  #实例化Select,text值是选择的我们下拉菜单时看到的值
time.sleep(2)   #切换后option显示"Audi"
driver.quit()

代码逻辑不主要,首要的是看成效,如下突显

2.清除接纳列表

我们把option增多未来,调整台打字与印刷了须臾间作用,看看是或不是是获取了对应的值

扶植测验的页面html代码

本着按索引实行切换option属性示比方下。常用艺术

 我们构成着上面的例子把结余的两种option方法一齐演示下,下边在地点的例证进行改建一下,来探视会并发上边样子的功效

 <select> 标签的multiple 属性样式

  • deselect_by_index(self, index)            
     #以index属性值来搜寻相配的因素并废除采用;
  • deselect_by_value(self, value)            
     #以value属性值来寻找该option并吊销接受;
  • deselect_by_visible_text(self, text)
      #以text文本值来查找相配的因素并撤废选取;
  • deselect_all(self)    
                                 
     #将持有选用消除;

金沙国际唯一官网网址 2

【www.2979.com】上边大家看一下selenium如哪个地区理下来菜单,选拔项是由此<select>中的<option>成分达成的。Select中提供多少个用于固定的option的不二等秘书诀,上边看一下现实的方式

#-*- coding:utf-8 -*-
import time
from selenium import webdriver
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/hunk/Desktop/select.html')
time.sleep(2)   #默认option显示"Fiat"
S = Select(driver.find_element_by_name('cars')).select_by_index(0)  #实例化Select,按索引选择option。索引以0开始
time.sleep(2)   #切换后option显示"Volvo"
driver.quit()
#-*- coding:utf-8 -*-
import time
from selenium import webdriver
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/hunk/Desktop/select.html')
time.sleep(2)   #默认option显示"Fiat"
S = Select(driver.find_element_by_name('cars')).select_by_value('saab')  #实例化Select,按value选择option。这里的value是标签的属性value,<option value="saab">Saab</option>
time.sleep(2)   #切换后option显示"saab"
driver.quit()
  • options    #以列表情势重临归于此select标签的享有option
  • all_selected_options #整整选择了的option的列表
  • first_selected_option
    #www.2979.com ,率先个被选中的option成分假若select未有multiple值,那时候获取值为当前增选的option
def options(self):
    '''以列表形式返回属于此select标签的所有option'''
    return self._el.find_elements(By.TAG_NAME, 'option')

3.选项

测验进程中一时遇到下来菜单,比方说分页,每页展现的条数,以至语言的切换,超级多时候平日是以下来菜单的方式表现,下边我们看一下selenium如哪个地方理下来菜单。

<html>
<body>
    <select name="cars" multiple="multiple" size="4">
        <option value="volvo">Volvo</option>
        <option value="saab">Saab</option>
        <option value="mercedes">Mercedes</option>
        <option value="audi">Audi</option>
    </select>
</body>
</html>

金沙国际唯一官网网址 3 

上述把Select模块中常用的方法介绍了,通过两种分裂的下拉菜单,对负有的法子开展了介绍,作者动用中湖蓝标记的办法是大家实际上项目中时常会利用的,需求进一层深厚的去精晓。

1.抉择列表

金沙国际唯一官网网址 ,出于选拔已经介绍的很详细,那么大家同盟的选料和撤销,写二个事例共同演示一下

<select> 标签样式

就算采摘未有上面两大块那么重要,可是大家还索要轻巧的来看一下

因为根据地点的页面示例,大家切换完结未来是平素不章程解除,下边大家来推广一下html
<select> 标签的multiple 属性,multiple
属性规定可同一时间选取八个选项,能够把 multiple 属性与 size
属性合营使用,来定义可以预知选项的多寡,所以我们会涉嫌到打消方式。

金沙国际唯一官网网址 4

首先类我们讲课了怎么着选择列表,总共介绍了4种办法,不过既然能够选拔大家就能够免去选取,而前两种撤除方法能够与选用后生可畏黄金年代对应,下边大家看下咋样裁撤选择

#-*- coding:utf-8 -*-
import time
from selenium import webdriver
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/hunk/Desktop/select.html')
'''本示例中所有设置等待时间均为便于观察效果'''
time.sleep(1)
Select(driver.find_element_by_name('cars')).select_by_index(0)  #以索引选择
time.sleep(1) 
Select(driver.find_element_by_name('cars')).select_by_value('saab')  #以value属性值选择
time.sleep(1) 
Select(driver.find_element_by_name('cars')).select_by_visible_text('Mercedes') #以text 文本进行选择
time.sleep(2)
options = Select(driver.find_element_by_name('cars')).all_selected_options  #获取所有选择的option
'''这里我们遍历下看看那些值被选中'''
for option in options:
    print('已经被选中option文本值:' + option.text)
Select(driver.find_element_by_name('cars')).deselect_by_index(0)
time.sleep(1)
Select(driver.find_element_by_name('cars')).deselect_by_value('saab')  #以value属性值取消选择
time.sleep(1) 
Select(driver.find_element_by_name('cars')).deselect_by_visible_text('Mercedes') #以text 文本进行取消选择
time.sleep(1)
'''获取所有的option的text值,进行遍历通过text文本进行选择'''
Options = Select(driver.find_element_by_name('cars')).options #该方法下面会详细介绍,此处为了获取所有的options选项
for option in Options:
    Select(driver.find_element_by_name('cars')).select_by_visible_text(option.text)  #循环选择
time.sleep(1)
'''因为遍历的过程中Volvo的索引为0,Volvo则被第一个选中'''
selectOption = Select(driver.find_element_by_name('cars')).first_selected_option
print (selectOption.text)
Select(driver.find_element_by_name('cars')).deselect_all()
time.sleep(1)
driver.quit()

针对按value进行切换option属性示比方下。常用艺术

首先selenium
很人性化的给提供了三个Select的模块,供管理下来菜单,首先大家需求导入Select,通过from
selenium.webdriver.support.select import Select来导入。

option 方法方面包车型大巴例证已经选拔过了,下边大家来介绍一下


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图