Python+Selenium筆記(八):操作下拉菜單
阿新 • • 發佈:2018-02-14
sel 字段 功能 options table 註冊 unit 生日 ted
(一) Select類
Select類是selenium的一個特定的類,用來與下拉菜單和列表交互。
下拉菜單和列表是通過HTML的<select> 元素實現的。選擇項是通過<select>中的<option>元素實現的。使用前使用下面的語句導入模塊。
from selenium.webdriver.support.ui import Select
(二) Select類的功能及方法
功能/屬性 |
簡單說明 |
all_selected_options |
獲取下拉菜單和列表中被選中的所有選項內容 |
first_selected_option |
獲取下拉菜單和列表的第一個選項 |
options |
獲取下拉菜單和列表的所有選項 |
方法 |
簡單說明 |
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) |
選擇和給定參數匹配的下拉菜單和列表的選擇項 |
(三) 示例(檢查12306註冊頁面的證件類型是否與預期一致)
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(這段就不註釋了)
Python+Selenium筆記(八):操作下拉菜單