操作下拉框
1. 定位select标签下拉框
什么是select标签下拉菜单,打开百度-高级设置界面,如下图所示
Select提供了三种选择方法:
select_by_index(index) ——通过选项的顺序,第一个为 0
select_by_value(value) ——通过value属性
select_by_visible_text(text) ——通过选项可见文本
先要导入select方法:
from selenium.webdriver.support.select import Select
# coding:utf-8 # select下拉框 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support.ui import Select import time driver = webdriver.Firefox() driver.implicitly_wait(10) driver.get("http://www.baidu.com") # 打开百度搜索高级设置页面 move = driver.find_element_by_xpath(".//*[@id='u1']/a[8]") ActionChains(driver).move_to_element(move).perform() driver.find_element_by_xpath(".//*[@id='wrapper']/div[6]/a[2]").click() # 通过索引 s1 = driver.find_element_by_xpath(".//*[@id='adv-setting-4']/select") Select(s1).select_by_index(1) # 通过value s2 = driver.find_element_by_xpath(".//*[@id='adv-setting-5']/select") Select(s2).select_by_value("pdf") # 通过text s1 = driver.find_element_by_xpath(".//*[@id='adv-setting-4']/select") Select(s1).select_by_visible_text("最近一年") driver.find_element_by_xpath(".//*[@id='adv-setting-7']/input[1]").send_keys("python") driver.quit()
也可直接定位
# coding:utf-8 # select下拉框直接定位 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time driver = webdriver.Firefox() driver.implicitly_wait(10) driver.get("http://www.baidu.com") # 打开百度搜索高级设置页面 move = driver.find_element_by_xpath(".//*[@id='u1']/a[8]") ActionChains(driver).move_to_element(move).perform() driver.find_element_by_xpath(".//*[@id='wrapper']/div[6]/a[2]").click() # 直接定位下拉框菜单项 driver.find_element_by_xpath(".//*[@id='adv-setting-4']/select/option[4]").click() time.sleep(3) driver.find_element_by_xpath(".//*[@id='adv-setting-7']/input[1]").send_keys("python") driver.quit()
2. 定位非select标签下拉框
什么是非select标签下拉框,如下图所示:58同城城市选择下拉框
分两步
1、先定位下拉框并点击展开菜单元素
2、在选择下拉框菜单项
# coding=utf-8 # 下拉框 from selenium import webdriver import time driver = webdriver.Firefox() driver.maximize_window() driver.get("http://cd.58.com/") # 进入城市选择页面 driver.find_element_by_xpath(".//*[@id='commonTopbar_ipconfig']/a[1]").click() # 定位下拉框并展开 driver.find_element_by_id("selector-province-result").click() # 再对下拉菜单中的选项选择 driver.find_element_by_xpath(".//*[@id='selector-province-box']/li[7]").click() time.sleep(3) driver.quit()