首页 > 技术文章 > Selenium(15):下拉框的操作

YouJeffrey 2021-11-26 16:32 原文

下拉框处理

web页面上经常会有下拉框,对下拉框的处理比较简单,一般分为两种情况:

一、下拉框通过元素定位识别

 driver.find_element(By.XPATH,'//option[@value="peach"]').click()

二、创建一个select的对象,然后通过相应方法处理

先导入Select包: from selenium.webdriver.support.select import Select

element_obj = driver.find_element(By.XPATH,'//select[@id="Selector"]')
select_obj = Select(element_obj)
select_obj.select_by_value(value属性的值)        # 利用value选择选项
select_obj.select_by_visible_text(文本内容)       # 利用可见的文本内容选择选项
select_obj.select_by_index(5)                            # 利用下标选择选项,下标从0开始

代码如下:

import os
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select  # 导入Select包

current_path = os.path.dirname(os.path.abspath(__file__))  # 当前路径
driver_path = os.path.join(current_path,'../webdriver/chromedriver.exe')  # driver路径
pages_path = os.path.join(current_path,'../pages/element_samples.html')  # 本地网页路径
driver = webdriver.Chrome(executable_path=driver_path)  # Firefox,Ie等
driver.get('file://%s'%pages_path)  # 本地网页打开file://  打开部署好的站点http://

# 直接识别下拉框选项并点击(select)
driver.find_element(By.XPATH,'//option[@value="peach"]').click()

# 先识别下拉框元素,把元素转换成Select对象,然后利用Select对象的方法去识别
element_obj = driver.find_element(By.XPATH,'//select[@id="Selector"]')
select_obj = Select(element_obj)
select_obj.select_by_value("banana")  # 利用value选择选项
time.sleep(2)
select_obj.select_by_visible_text('桔子')  # 利用可见的文本内容选择选项
time.sleep(2)
select_obj.select_by_index(5)  # 利用下标选择选项,下标从0开始

 

推荐阅读