文章目錄
-
-
-
- 【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("所有格式")