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(),"關注了")]')))
展示圖:
原文鏈接:
https://www.cnblogs.com/qican/p/13521606.html