天天看點

下拉框操作

文章目錄

        • 【1】介紹
        • 【2】思路
        • 【3】三種方式
        • 【4】示例代碼
            • 非select/option 元素的下拉框操作
            • Select/option 元素的下拉框操作

【1】介紹

觀察下拉框頁面元素。是

select/option

還是

ul/li

1、菜單欄-點選其中的某個連結跳轉

2、在下拉清單中選擇一個值

【2】思路

1、等待下拉清單和下拉清單中值存在

2、對下拉清單中的元素進行操作

【3】三種方式

1、擷取所有的下拉清單值,然後用循環去比對相同的值

2、通過text的内容來找到下拉清單的某個值

3、如果是

select/option

組合,則可以使用

Select

類來處理

【4】示例代碼

非select/option 元素的下拉框操作

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import Select
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from  selenium.webdriver.common.by import By

import  time
driver = webdriver.Chrome()
driver.get("http://baidu.com")
setting_ele = driver.find_element_by_xpath('//*[@id="ul"]//*[@name="tj_settingicon"]')

#滑鼠懸停-菜單  出現
action = ActionChains(driver)
action.move_to_element(setting_ele).perform()

'''
解決思路:
1、等待下拉清單和下拉清單中值存在
2、對下拉清單中的元素進行操作
'''

time.sleep(5)
#等待元素可見
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//a[text()="進階搜尋"]')))
driver.find_element_by_xpath('//a[text()="進階搜尋"]').click()
           

Select/option 元素的下拉框操作

百度進階搜尋頁面中,選擇檔案類型和格式

下拉框操作

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.support.ui import Select

from selenium import webdriver

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.by import By

import  time
driver = webdriver.Chrome()
driver.get("http://baidu.com")
setting_ele = driver.find_element_by_xpath('//*[@id="ul"]//*[@name="tj_settingicon"]')

#滑鼠懸停-菜單  出現
action = ActionChains(driver)
action.move_to_element(setting_ele).perform()

time.sleep(5)
#等待元素可見
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//a[text()="進階搜尋"]')))
driver.find_element_by_xpath('//a[text()="進階搜尋"]').click()

#Select 類使用
select = Select (driver.find_element_by_name("ft"))
#可根據下表來選擇
select.select_by_index(2)
time.sleep(5)

#、可根據option 的value屬性值來選擇
select.deselect_by_value("ppt")
time.sleep(5)

#4、可根據文本内容來選擇
select.select_by_visible_text("所有格式")
           

繼續閱讀