日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

js下拉 selenium_selenium的下拉选择框

發(fā)布時(shí)間:2023/12/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js下拉 selenium_selenium的下拉选择框 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天總結(jié)下selenium的下拉選擇框。我們通常會(huì)遇到兩種下拉框,一種使用的是html的標(biāo)簽select,另一種是使用input標(biāo)簽做的假下拉框。

后者我們通常的處理方式與其他的元素類似,點(diǎn)擊或使用JS等。而對(duì)于前者,selenium給了有力的支持,就是Select類。

網(wǎng)頁(yè)與源碼截圖如下:

1.導(dǎo)入(import)

你可以用以下方式導(dǎo)入:

from selenium.webdriver.support.ui import Select

# 或者直接從select導(dǎo)入

# from selenium.webdriver.support.select import Select

這兩種方法沒(méi)有本質(zhì)的區(qū)別,你如果去看ui庫(kù),你會(huì)發(fā)現(xiàn),它也只是把select import進(jìn)去。

2.選擇(select)

Select類提供了三種選擇某一選項(xiàng)的方法:

select_by_index(index)

select_by_value(value)

select_by_visible_text(text)

針對(duì)于示例網(wǎng)站中的第一個(gè)select框:

o1

o2

o3

我們可以這樣定位:

from selenium import webdriverd

from selenium.webdriver.support.ui import Select

driver = webdriver.Firefox()

driver.get('http://sahitest.com/demo/selectTest.htm')

s1 = Select(driver.find_element_by_id('s1Id')) # 實(shí)例化Select

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

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

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

driver.quit()

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

index從?0?開(kāi)始

value是option標(biāo)簽的一個(gè)屬性值,并不是顯示在下拉框中的值

visible_text是在option標(biāo)簽中間的值,是顯示在下拉框的值

3.反選(deselect)

自然的,有選擇必然有反選,即取消選擇。Select提供了四個(gè)方法給我們?nèi)∠瓉?lái)的選擇:

deselect_by_index(index)

deselect_by_value(value)

deselect_by_visible_text(text)

deselect_all()

前三種分別于select相對(duì)應(yīng),第四種是全部取消選擇,是的,你沒(méi)看錯(cuò),是全部取消。有一種特殊的select標(biāo)簽,即設(shè)置了multiple=”multiple”屬性的select,這種select框是可以多選的,你可以通過(guò)多次select,選擇多項(xiàng)選項(xiàng),而通過(guò)deselect_all()來(lái)將他們?nèi)咳∠?/p>

全選?NO,不好意思,沒(méi)有全選,不過(guò)我想這難不倒你,尤其是看了下面的這幾個(gè)屬性。

4.選項(xiàng)(options)

當(dāng)我們選擇了選項(xiàng)之后,想要看看選擇的是哪項(xiàng),所選的是否是我想選的,怎么辦?別擔(dān)心,Select為你提供了相應(yīng)的方法(或者應(yīng)該說(shuō)是屬性了):

options

all_selected_options

first_selected_option

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

1 想查看一個(gè)select所有的選項(xiàng)

...

s1 = Select(driver.find_element_by_id('s1Id'))

for select in s1.options:

print select.text

...

結(jié)果:

o1

o2

o3

一共四項(xiàng),第一項(xiàng)為空字符串。

2 想查看我已選中的選項(xiàng)

...

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

...

結(jié)果:

o1

o2

With spaces

With nbsp

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

空格’ ‘,這種在以visible_text的方式選擇時(shí),不計(jì)空格,從第一個(gè)非空格字符開(kāi)始

網(wǎng)頁(yè)空格& nbsp;,對(duì)于這種以nbsp為空格的選項(xiàng),在以visible_text的方式選擇時(shí),需要考慮前面的空格,每一個(gè)nbsp是一個(gè)空格

3 想要查看選擇框的默認(rèn)值,或者我以及選中的值

...

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

...

結(jié)果:

o2

第一行輸出默認(rèn)選項(xiàng)的文本——空字符串”“;第二行輸出選中的選擇的文本——”o2”。

5.總結(jié)

Select提供了三種選擇方法:

select_by_index(index) ——通過(guò)選項(xiàng)的順序,第一個(gè)為 0

select_by_value(value) ——通過(guò)value屬性

select_by_visible_text(text) ——通過(guò)選項(xiàng)可見(jiàn)文本

同時(shí),Select提供了四種方法取消選擇:

deselect_by_index(index)

deselect_by_value(value)

deselect_by_visible_text(text)

deselect_all()

此外,Select提供了三個(gè)屬性方法給我們必要的信息:

options ——提供所有的選項(xiàng)的列表,其中都是選項(xiàng)的WebElement元素

all_selected_options ——提供所有被選中的選項(xiàng)的列表,其中也均為選項(xiàng)的WebElement元素

first_selected_option ——提供第一個(gè)被選中的選項(xiàng),也是下拉框的默認(rèn)值

通過(guò)Select提供的方法和屬性,我們可以對(duì)標(biāo)準(zhǔn)select下拉框進(jìn)行任何操作,但是對(duì)于非select標(biāo)簽的偽下拉框,就需要用其他的方法了,這個(gè)有機(jī)會(huì)再討論。

總結(jié)

以上是生活随笔為你收集整理的js下拉 selenium_selenium的下拉选择框的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。