前言
web網頁大多選擇功能使用下拉列表方式實現,在selenium進行自動化過程中,可通過Select類實現下拉列表的多種操作。
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() # 取消對應文本選項 options() # 返回下拉列表-所有選項 first_selected_option() # 返回下拉列表-第一個選項 all_selected_options() # 返回下拉列表-選中的選項
備注:
使用時需先導入Select類:from selenium.webdriver.support.select import Select
實例
攜程首頁-酒店-房間數選擇,采用下拉列表形式。模擬攜程酒店-房間,勾選房間數如下:
1 # 模擬攜程首頁-酒店,勾選房間數 2 from selenium.webdriver.support.select import Select 3 from selenium import webdriver 4 from time import sleep 5 6 driver.get("https://www.ctrip.com/?sid=155952&allianceid=4897&ouid=index") # 進入攜程首頁 7 sleep(3) 8 9 select_ele = driver.find_element_by_id("J_roomCountList") # 定位房間數下拉框 10 select_ele.click() # 點擊展開房間數下拉列表 11 sleep(2) 12 Select(select_ele).select_by_index(2) # 選中選項-3間(索引從0開始) 13 # Select(select_ele).select_by_value(3) # 選中選項-3間,value=3 14 # Select(select_ele).select_by_visible_text("3間") # 選中-3間,文本"3間" 15 sleep(3)
獲取下拉列表選項:
1 select_ele = driver.find_element_by_id("J_roomCountList") # 定位房間數下拉框 2 select_ele.click() # 點擊展開房間數下拉列表 3 4 # 獲取所有下拉列表選項 5 for select in Select(select_ele).options: 6 print(select.text) 7 8 # 獲取選中的選項 9 for select in Select(select_ele).all_selected_options: 10 print("選中選項:", select.text)