下拉框处理
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开始