selenium常用操作之下拉框操作


下拉框操作:

      一般下拉框適用場景:在新增時有下拉框選項,在二級聯動或多級聯動有下拉(比如:在選擇省市縣時的多級聯動下拉、日期控件等)。

一般下拉框功能有以下兩個:

      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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM