前言
web自動化中,常見的場景還有一個下拉框的選擇,哪么在selenium中如何做下拉框的操作呢?
select
select在HTML中表示元素名,可創建單選或多選菜單。
HTML中select長什么樣子:
select在HTML中元素名,下面有選擇操作,選擇內容在select中包含
<html>
<body>
<form>
<center>
<select?name="anjing">
<option?value="boke">請關注安靜博客option>
<option?value="study">今天學習了嗎?option>
<option?value="daily">今天看安靜博客了嗎?option>
<option?value="like">點贊了嗎?option>
<option?value="attention">關注了嗎?option>
center>
select>
form>
body>
html>
select操作方法
selenium中想要操作下拉框需要導入新的模塊 from selenium.webdriver.support.select import 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()? | 取消對應文本選項 |
first_selected_option()? | 返回第一個選項 |
all_selected_options()? | 返回所有的選項 |
options() | 返回所以的選擇項 |
all_selected_options() | 返回所以已選中的選擇項 |
first_selected_option() | 返回選中的第一個選擇項 |
小試牛刀
方法也認識了,select也知道是什么樣子的了,那么我們開始進行操作
1、想要操作select,首先定位到select上,然后進行實例化
2、通過Select進行通過下標,value,text進行定位下拉框
3、加入判斷預期值是否切換到下拉框中
from?selenium?import?webdriver
from?selenium.webdriver.support.wait?import?WebDriverWait
from?selenium.webdriver.support?import?expected_conditions?as?EC
from?selenium.webdriver.support.select?import?Select
from?selenium.webdriver.common.by?import?By
import?time
driver?=?webdriver.Chrome()
path?=?r'E:\web\select.html'
driver.get(path)
#?通過顯示等待的方法判斷元素是否出現
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.NAME,"anjing")))
select?=?driver.find_element_by_name('anjing')
#?根據下標進行選擇,從0開始
Select(select).select_by_index(1)
time.sleep(2)
#?根據value的值選擇
Select(select).select_by_value('daily')
time.sleep(2)
#?根基text選擇
Select(select).select_by_visible_text('關注了嗎?')
time.sleep(2)
#?判斷選擇是否預期
WebDriverWait(driver,20).until(EC.element_located_to_be_selected((By.XPATH,'//*[contains(text(),"關注了")]')))
展示圖:

這里安靜主要通過一個小的例子,然后如何通過Selenium操作下拉框的小案例。這里安靜提示大家,如果遇到哪些沒有見過的庫,可以去看看源碼,其實源碼中已經寫的很清楚了。
這里安靜寫的文章如果對您有幫助,點個關注,持續更新。不懂的或者寫錯的地方,可以下方留言。