下拉框操作:
一般下拉框適用場景:在新增時有下拉框選項,在二級聯動或多級聯動有下拉(比如:在選擇省市縣時的多級聯動下拉、日期控件等)。
一般下拉框功能有以下兩個:
1.菜單欄-點擊其中的某個鏈接跳轉
2.對下拉列表的元素進行操作。
下拉框選擇都有select的標簽屬性,存在兩個屬性select和option。有的呈現的是下拉框樣式但沒有select屬性的比如說或ul/li。
思路:
1.等待下拉列表和下拉列表出現
2.對下拉列表的元素進行操作
下拉框操作流程:
1.獲取所有的下拉列表值,然后用循環去匹配相同的值;
2.通過text的內容來找到下拉列表的某個值
示例代碼:
#等待下拉框元素出現后點擊 WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//a[contains(text(),"課程")]'))) driver.find_element_by_xpath('//a[contains(text(),"課程")]').click()
3.如果是select/option組合,則可以使用Select類來處理。
示例代碼:
from selenium.webdriver.common.action_chains import ActionChains #1.實例化鼠標類 ac=ActionChains(driver) #2.調用各種鼠標行為后,調用perform()來執行 ac.move_to_element_with_offset(driver.find_element_by_xpath('//div[@id="u"]/*[@name="tj_login"]')).perform() from selenium.webdriver.support.ui import Select #1.實例化select類 select=Select(driver.find_element_by_id("su")) #2.根據下標來選擇 select.select_by_index(2) #3.根據option的value值來選擇 select.select_by_visible_text("高級搜索")
以下是網上其他文章中介紹的。可以參考下:
其類型有:
①單選下拉框,可以選擇一個元素。
②多選下拉框,可以選擇多個元素。
定位方法:
①直接定位
②二次定位。先定位到select框,再定位到select選項。
③導入Select模塊(推薦使用) -- 根據屬性或者索引來定位。
先要導入Select方法 from selenium.webdriver.support.ui import Select 。
然后通過索引:s = driver.find_element_by_id('nr')
Select(s).select_by_index(2)
通過value值定位:s = driver.find_element_by_id('nr')
Select(s).select_by_value('20')
通過text值來定位:s = driver.find_element_by_id('nr')
Select(s).select_by_visible_text('寶馬')
下面附上ms.html代碼截圖:
通過selenium實現:
import time
from selenium import webdriver
from selenium.webdriver.support.ui import Select # 導入Select模塊
# 指定驅動
driver = webdriver.Chrome(r"C:\webdriver\chromedriver.exe")
# 打開網址
driver.get('file:///C:/Users\Administrator/PycharmProjects/1120/web_driver/lesson3/ms.html')
# 獲得相應的webElement
select = Select(driver.find_element_by_id('multi'))
# 先取消所有選擇的選項
select.deselect_all()
# 根據text值定位
select.select_by_visible_text('雅閣')
select.select_by_visible_text('寶馬 740')
# 獲得相應的webElement
select = Select(driver.find_element_by_id('single'))
# 根據value值定位
select.select_by_value('male')
driver.quit()