(六)自動化測試之selenium學習心得 選擇框

2022-09-02 09:15:07 字數 3429 閱讀 1942

一、radio框

radio框選擇選項,直接用webelement的click方法,模擬使用者點選就可以了。

比如, 我們要在下面的html中:

先列印當前選中的老師名字

再選擇 小雷老師

網頁資訊

小江老師

小雷老師

小凱老師

對應的**如下

from selenium import webdriver

wd = webdriver.chrome()

wd.implicitly_wait(10)

wd.get('')

# 獲取當前radio框預設選擇值

elmt = wd.find_element_by_css_selector('#s_radio input[checked="checked"]')

elmt_value = elmt.get_attribute('value')

print('當前選中的是:' + elmt_value)

# 選擇其他老師

wd.find_element_by_css_selector('#s_radio input[value="小雷老師"]').click()

二、checkbox框

對checkbox進行選擇,也是直接用 webelement 的 click 方法,模擬使用者點選選擇。

需要注意的是,要選中checkbox的乙個選項,必須 先獲取當前該核取方塊的狀態 ,如果該選項已經勾選了,就不能再點選。否則反而會取消選擇。

比如, 我們要在下面的html中:選中 小雷老師

小江老師

小雷老師

小凱老師

我們的思路可以是這樣:

先把 已經選中的選項全部點選一下,確保都是未選狀態

再點選 小雷老師 小江老師

**如下:

from selenium import webdriver

wd = webdriver.chrome()

wd.implicitly_wait(10)

wd.get('')

# 核取方塊選擇思路:先把已經選中的選項全部點選一下,確保都是未選狀態,再進行選擇

elmts = wd.find_elements_by_css_selector('#s_checkbox input[checked="checked"]')

for elmt in elmts:

elmt.click()

wd.find_element_by_css_selector('#s_checkbox input[value="小雷老師"]').click()

wd.find_element_by_css_selector('#s_checkbox input[value="小江老師"]').click()

三、select框

radio框及checkbox框都是input元素,只是裡面的type不同而已。

select框 則是乙個新的select標籤,大家可以對照瀏覽器網頁內容檢視一下

對於select 選擇框, selenium 專門提供了乙個 select類 進行操作。

select類 提供了如下的方法

select_by_value

根據選項的 value屬性值 ,選擇元素。

比如,下面的html,

bar就可以根據 foo 這個值選擇該選項,

s.select_by_value('foo')

select_by_index

根據選項的 次序 (從0開始),選擇元素

select_by_visible_text

根據選項的 可見文字 ,選擇元素。

比如,下面的html,

bar就可以根據 bar 這個內容,選擇該選項

s.select_by_visible_text('bar')

deselect_by_value

根據選項的value屬性值, 去除 選中元素

deselect_by_index

根據選項的次序,去除 選中元素

deselect_by_visible_text

根據選項的可見文字,去除 選中元素

deselect_all

去除 選中所有元素

3.1select單選框

**例子如下:

from selenium import webdriver

# 匯入select類

from selenium.webdriver.support.ui import select

wd = webdriver.chrome()

wd.implicitly_wait(10)

wd.get('')

# select單選框,直接用slecet方法選擇即可

# 建立select物件

selct = select(wd.find_element_by_id('ss_single'))

# 通過物件選中小雷老師

selct.select_by_value('小雷老師')

3.2、select多選框

對於select多選框,要選中某幾個選項,要注意去掉原來已經選中的選項。

例如,我們選擇示例多選框中的 小雷老師 和 小凱老師

可以用select類 的deselect_all方法,清除所有 已經選中 的選項。

**例子如下:

from selenium import webdriver

# 匯入select類

from selenium.webdriver.support.ui import select

wd = webdriver.chrome()

wd.implicitly_wait(10)

wd.get('')

# select單選框,直接用slecet方法選擇即可

# 建立select物件

selct = select(wd.find_element_by_id('ss_multi'))

# 清除所有已經選中的選項

selct.deselect_all()

# 通過物件選中小雷老師

selct.select_by_value('小雷老師')

selct.select_by_value('小江老師')

selenium 自動化測試。

第一步安裝 谷歌瀏覽器。第三步編寫測試測試指令碼 第四步 安裝selemium coding utf 8 引入webdriver和unittest所需要的包 from selenium import webdriver from selenium.webdriver.common.by import...

Selenium自動化測試之python應用

selenium支援多種程式語言,本篇介紹selenium自動化測試之python應用,基礎入門篇。環境搭建 pycharm python3.7 selenium 使用最新版 2 python3.7 安裝成功後,不需配置環境變數 4 在cmd視窗中執行 pip install selenium 5 ...

自動化測試之六 自動化測試模型

from selenium import webdriver chrome driver path r c users administrator envs selenuimautotest lib site packages selenium webdriver chrome chromedriv...