傳統的下拉菜單 Select 元素,由一個 Select + 一系列的 option 元素構成。
<select id="source" name="source"><option value="">--請選擇--</option><option value="1001">網絡營銷</option><option value="1002">公開媒體</option><option value="1003">合作伙伴</option>…
</select>
對于下拉菜單,我們操作時是先點擊下拉選項,再在展開的選項中點擊一項來完成選擇。
如果用?Selenium?模擬,就需要先點擊 Select 元素,再點擊 Option,就稍微麻煩了一些。我們可以通過兩種方法來處理。
1. 直接通過 Xpath 點擊選項
通過 Xpath 點擊直接選項,可以不用點擊下拉,一句代碼完成操作。
以上面的局部 HTML 代碼為例:
driver.find_element_by_xpath('//*[@id="source"]/option[@value="1002"]').click()
2. 使用 Select 類
使用 Xpath 雖然可行,但是稍微缺乏一些靈活性。
在 WebDriver 中專門提供了一個 Select 類來處理下拉菜單。
# 導入 Select 類
from selenium.webdriver.support.select import Select
# 找到下拉菜單元素
e = driver.find_element_by_id('source')
select = Select(e)
# 按文本選擇
select.select_by_visible_text('合作伙伴')
Select 類中還提供了通過 option 索引選取、通過 value 值選取:
select.select_by_index(1)
select.select_by_value('1003')
由于我們經常使用 index 和 visible text (可見文本) 的方式選擇選項。所以我們簡單封裝一下:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Selectdef select(driver, locator, option=0):e = Select(driver.find_element(*locator))# 如果選項為整數,則通過 index 選擇if isinstance(option, int):e.select_by_index(option)# 如果選項為字符串,則通過 visible_text 選擇elif isinstance(option, str):e.select_by_visible_text(option)else:raise ValueError('只能通過index或可見文本進行下拉選項選擇!')# 使用
select(driver, (By.ID, 'source'), '合作伙伴')
下面是配套資料,對于做【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!
最后: 可以在公眾號:自動化測試老司機?! 免費領取一份216頁軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!,其中包括了有基礎知識、Linux必備、Shell、互聯網程序原理、Mysql數據庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續集成、測試架構開發測試框架、性能測試、安全測試等。
如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!