selenium之 下拉選擇框Select

2022-08-30 05:27:12 字數 3309 閱讀 4941

我們通常會遇到兩種下拉框,一種使用的是html的標籤select,另一種是使用input標籤做的假下拉框。

後者我們通常的處理方式與其他的元素類似,點選或使用js等。而對於前者,selenium給了有力的支援,就是select類。

我們要進行試驗的**:

網頁與原始碼截圖如下:

你可以用以下方式匯入:

from selenium.webdriver.support.ui import select

# 或者直接從select匯入

# from selenium.webdriver.support.select import select

這兩種方法沒有本質的區別,你如果去看ui庫,你會發現,它也只是把select import進去。

select類提供了三種選擇某一選項的方法:

select_by_index(index)

select_by_value(value)

select_by_visible_text(text)

"s1id">

option>

o1option>

o2option>

o3option>

我們可以這樣定位:

from selenium import webdriverd

from selenium.webdriver.support.ui import select

driver = webdriver.firefox()

driver.get('')

s1 = select(driver.find_element_by_id('s1id')) # 例項化select

s1.select_by_index(1) # 選擇第二項選項:o1

s1.select_by_value("o2") # 選擇value="o2"的項

s1.select_by_visible_text("o3") # 選擇text="o3"的值,即在下拉時我們可以看到的文字

driver.quit()

以上是三種選擇下拉框的方式,注意:

index從0開始

value是option標籤的乙個屬性值,並不是顯示在下拉框中的值

visible_text是在option標籤中間的值,是顯示在下拉框的值

自然的,有選擇必然有反選,即取消選擇。select提供了四個方法給我們取消原來的選擇:

deselect_by_index(index)

deselect_by_value(value)

deselect_by_visible_text(text)

deselect_all()

前三種分別於select相對應,第四種是全部取消選擇,是的,你沒看錯,是全部取消。有一種特殊的select標籤,即設定了multiple=」multiple」屬性的select,這種select框是可以多選的,你可以通過多次select,選擇多項選項,而通過deselect_all()來將他們全部取消。

全選?no,不好意思,沒有全選,不過我想這難不倒你,尤其是看了下面的這幾個屬性。

當我們選擇了選項之後,想要看看選擇的是哪項,所選的是否是我想選的,怎麼辦?別擔心,select為你提供了相應的方法(或者應該說是屬性了):

options

all_selected_options

first_selected_option

上面三個屬性,分別返回這個select元素所有的options、所有被選中的options以及第乙個被選中的option。

1 想檢視乙個select所有的選項

...

s1 = select(driver.find_element_by_id('s1id'))

for select in s1.options:

print select.text

...

結果:

o1

o2o3

一共四項,第一項為空字串。

2 想檢視我已選中的選項

...

s4 = select(driver.find_element_by_id('s4id'))

s4.select_by_index(1)

s4.select_by_value("o2val")

s4.select_by_visible_text("with spaces")

s4.select_by_visilbe_text(" with nbsp")

for select in s4.all_selected_options:

print select.text

...

結果:

o1

o2 with spaces

with nbsp

輸出所有被選中的選項,適合於能多選的框,僅能單選的下拉框有更合適的方法(當然用這種方法也可以)。這裡需要注意的是兩種不同空格的選擇:

空格』 『,這種在以visible_text的方式選擇時,不計空格,從第乙個非空格字元開始

網頁空格& nbsp;,對於這種以nbsp為空格的選項,在以visible_text的方式選擇時,需要考慮前面的空格,每乙個nbsp是乙個空格

3 想要檢視選擇框的預設值,或者我以及選中的值

...

s2 = select(driver.find_element_by_id('s2id'))

print s2.first_selected_option.text

s2.select_by_value("o2")

print s2.first_selected_option.text

...

結果:

o2
第一行輸出預設選項的文字——空字串」「;第二行輸出選中的選擇的文字——」o2」。

文章**於  

selenium之 下拉選擇框Select

下拉列表操作中分為兩種 select 非select 1 非select的下拉框操作 非select下拉列表操作與網頁元素操作一致,找到元素,定位元素,設定等待,點選元素等等 舉個栗子 from selenium import webdriver from selenium.webdriver.su...

selenium常用操作之下拉框操作

下拉框操作 一般下拉框適用場景 在新增時有下拉框選項,在二級聯動或多級聯動有下拉 比如 在選擇省市縣時的多級聯動下拉 日期控制項等 一般下拉框功能有以下兩個 1.選單欄 點選其中的某個鏈結跳轉 2.對下拉列表的元素進行操作。下拉框選擇都有select的標籤屬性,存在兩個屬性select和option...

用java選擇selenium下拉選擇框的乙個選項

用selenium 選擇select下的option please choose oneadvertiser agent 可以用 select userselect new select driver.findelement by.id user user type userselect.selec...