Selenium 下拉框塑荒、勾選框的一些操作

3.5.2 選擇框進(jìn)行選擇

  • 單選框
    單選框(Radio Button)像這樣:
    image.png

要對選擇框進(jìn)行選擇党瓮,直接用WebElementclick方法浑侥,模擬用戶點擊就可以了姊舵。而且不管原來該元素是否選中,直接去點擊該元素就沒有問題寓落,都可以確保該單選框選中括丁。下面面的HTML頁面。


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
</head>

<body>

<p>測試單選</p>
<div>
    <input type="radio" name="gender" value="male"> 男<br>
    <input type="radio" name="gender" value="female"> 女<br>
    <input type="radio" name="gender" value="other" checked="checked"> 其他
</div>

</body>
</html>

要確保性別“男”的選項被選中伶选,代碼可以這樣寫:

from datetime import time

import time

from selenium import webdriver

driver = webdriver.Chrome('E:\ChromDriver\chromedriver.exe')

driver.get(r'E:\case\Selenium\代碼\samples_selenium\wd\lesson04\rb.html')

driver.implicitly_wait(10)

#css
input1 = driver.find_element_by_css_selector("input[value=male]")
#XPath
# input1 = driver.find_element_by_xpath("http://input[@value='male']")

input1.click()

time.sleep(5)

driver.quit()

這里就選擇了史飞,注意radio是單選框

  • 勾選框
    勾選框(Check Box)像這樣
    image.png

要對勾選框進(jìn)行選擇,直接用WebElementclick方法仰税,模擬用戶點擊就可以了构资。要注意一個問題是,對應(yīng)單選框肖卧,不管原來該元素是否選中蚯窥,直接去點擊該元素沒有問題掸鹅,都可以確保單選框選中塞帐。而對于勾選框,我們必須先獲取當(dāng)前該選擇框的狀態(tài)巍沙,如果是已經(jīng)點選的葵姥,我們的代碼里就不能再點擊,否則點擊已選中的勾選框句携,反而會取消選擇榔幸。下面的HTML頁面,‘我有一輛汽車’的選項已經(jīng)被選了矮嫉。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
</head>

<body>
<p>測試勾選</p>
<div>
    <input type="checkbox" name="vehicle" value="bike" >
    我有一輛自行車
    <br>
    <input type="checkbox" name="vehicle" value="car" checked>
    我有一輛汽車
</div>
</body>
</html>

Selenium通過 WebElementis_selected 方法來獲取 選擇框是否選中的狀態(tài)削咆。要確保‘我有一輛汽車’的選項被選中蠢笋,代碼可以這樣寫:

from selenium import webdriver

driver = webdriver.Chrome('E:\ChromDriver\chromedriver.exe')

driver.get(r'E:\case\Selenium\代碼\samples_selenium\wd\lesson04\cb.html')

input1 = driver.find_element_by_css_selector('input[value=car]')

selected = input1.is_selected()

if selected:
    print('car already selected')
else:
    print('car not selected,click on it')
    input1.click()

input('press any key to quit...')
driver.quit()

這樣拨齐,先判斷,如果選中昨寞,不能點擊該勾選框瞻惋。

  • 復(fù)選框
    復(fù)選框(select)可以是多選的厦滤,像這樣:
    image.png

也可以是單選的,像這樣:


image.png

下面是 html 頁面:


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>定位網(wǎng)頁元素</title>
</head>

<body>

<p>選擇您喜愛的車</p>
<select id="multi" multiple>
    <option value="benz">奔馳S300</option>
    <option value="accord">雅閣</option>
    <option value="bmw" selected="selected">寶馬 740</option>
    <option value="audi">奧迪A6</option>
</select>

<hr>

<p>選擇性別</p>
<select  id="single">
    <option value="male">男</option>
    <option value="female" selected="selected">女</option>
</select>


</body>
</html>

其中歼狼,選車的選項是多選(注意<select>里面的 multiple 屬性)掏导,選性別是單選,如果我們想選中寶馬和雅閣兩種車羽峰,性別男趟咆,該怎么做呢?特別要注意的是限寞,多選框里面已經(jīng)有寶馬選項忍啸,已經(jīng)處于選中狀態(tài)了。Selenium 為我們提供了一個方便的 Select 類履植。其中有個方法 deselect_all 用來清除原來的選擇计雌,然后通過方法 select_by_visible_text, 根據(jù)選項的內(nèi)容進(jìn)行選擇玫霎,而不是我們發(fā)出點擊事件去選擇凿滤。下面是示例代碼:

from selenium import webdriver

driver = webdriver.Chrome('E:\ChromDriver\chromedriver.exe')

driver.get(r'E:\case\Selenium\代碼\samples_selenium\wd\lesson04\ms.html')

#導(dǎo)入select類
from selenium.webdriver.support.ui import Select
#獲取相應(yīng)的webElement
select = Select(driver.find_element_by_id("multi"))
#先去選擇所有的選項
select.deselect_all()
select.select_by_visible_text("雅閣")
select.select_by_visible_text("寶馬 740")

#獲得相應(yīng)的webElement
select = Select(driver.find_element_by_id("single"))
select.select_by_visible_text("男")

input("press any key to quit...")
driver.quit()

只有遇到 select 標(biāo)簽名的才能用 select 類.

3.5.3 編輯框的一些操作

clear 方法清除該元素里面字符串:

input1.clear()

獲取 input() 元素里面輸入的文本內(nèi)容:

input1.get_attribute('value')

3.5.4 點擊按鈕、鏈接

按鈕庶近、鏈接的點擊都非常簡單翁脆,找到該元素,直接調(diào)用其 click 方法就可以了鼻种。比如:

driver.find_element_by_id('123').click()

下面是 html 頁面:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>定位網(wǎng)頁元素</title>

</head>

<body>

    <p>測試輸入</p>
    <div style="color:#0000FF">
        <input id="input1" value="sdfsdf">
        <br><br>
        <textarea id="ta1"></textarea>
    </div>

    <button name='button'>按鈕1</button>
    <button name='button'>按鈕2</button>



</body>
</html>

示例代碼:

from selenium import webdriver

driver = webdriver.Chrome('E:\ChromDriver\chromedriver.exe')

driver.get(r'E:\case\Selenium\代碼\samples_selenium\wd\lesson04\input1.html')

driver.implicitly_wait(10)

input1 = driver.find_element_by_id('input1')
input1.clear()

input1.send_keys('軟件測試')
print(input1.get_attribute('value'))

input("press any key to quit...")
driver.quit()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末反番,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子叉钥,更是在濱河造成了極大的恐慌罢缸,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件投队,死亡現(xiàn)場離奇詭異枫疆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)敷鸦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門息楔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扒披,你說我怎么就攤上這事值依。” “怎么了碟案?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵愿险,是天一觀的道長。 經(jīng)常有香客問我蟆淀,道長拯啦,這世上最難降的妖魔是什么澡匪? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮褒链,結(jié)果婚禮上唁情,老公的妹妹穿的比我還像新娘。我一直安慰自己甫匹,他們只是感情好甸鸟,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著兵迅,像睡著了一般抢韭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恍箭,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天刻恭,我揣著相機(jī)與錄音,去河邊找鬼扯夭。 笑死鳍贾,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的交洗。 我是一名探鬼主播骑科,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼构拳!你這毒婦竟也來了咆爽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤置森,失蹤者是張志新(化名)和其女友劉穎斗埂,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體暇藏,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蜜笤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年濒蒋,在試婚紗的時候發(fā)現(xiàn)自己被綠了盐碱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡沪伙,死狀恐怖瓮顽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情围橡,我是刑警寧澤暖混,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站翁授,受9級特大地震影響拣播,放射性物質(zhì)發(fā)生泄漏晾咪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一贮配、第九天 我趴在偏房一處隱蔽的房頂上張望谍倦。 院中可真熱鬧,春花似錦泪勒、人聲如沸昼蛀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叼旋。三九已至,卻和暖如春沦辙,著一層夾襖步出監(jiān)牢的瞬間夫植,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工油讯, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留偷崩,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓撞羽,卻偏偏與公主長得像阐斜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子诀紊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359