1、认识Select框,
- 平时遇到下图中的情况,通过下拉列表选择的信息
- select的标签属性:<select class="form-control" id="corporationName" style="margin-bottom:4px;" name="corporationName" data-bv-field="corporationName">
- 存在两个选项值:<option value="函数兔008集团" selected="">函数兔008集团</option>、<option value="金石基金测试0314日注册">金石基金测试0314日注册</option>

2、定位方法-二次定位
- 先定位select框,在定位select的选项:查看该代码,id和name都有重复的,不方便定位,选择了xpath定位方法
- 代码如下:
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://djuat.dtfunds.com/fund-jsqyweb/index.html")
time.sleep(2)
driver.maximize_window()
driver.find_element_by_name("mobile").send_keys("13770506771")
time.sleep(1)
select = driver.find_element_by_xpath("//select")
time.sleep(1)
#先定位select,再操作选项,
select.find_element_by_xpath("//select/option[2]").click()
time.sleep(1)
select.find_element_by_xpath("//select/option[1]").click()
time.sleep(1)
#也可以直接操作,
driver.find_element_by_xpath("//select").find_element_by_xpath("//select/option[2]").click()
time.sleep(1)
driver.quit()
3、定位方法-直接定位
- 直接通过xpath定位到元素直接操作:driver.find_element_by_xpath("//select/option[2]").click()
4、Select模块-index
- selenium还提供了更高级的玩法,导入select模块直接用索引来定位
- 先导入:from selenium.webdriver.support.select impot Select
- 然后通过索引来选择对应的选项(index从0开始)
- 代码:
from selenium import webdriver
from selenium.webdriver.support.select import Select
import time
driver = webdriver.Chrome()
driver.get("http://djuat.dtfunds.com/fund-jsqyweb/index.html")
time.sleep(2)
driver.maximize_window()
driver.find_element_by_name("mobile").send_keys("13770506771")
time.sleep(1)
select = driver.find_element_by_xpath("//select")
#通过索引来定位
Select(select).select_by_index(1)
time.sleep(1)
Select(select).select_by_index(0)
time.sleep(1)
Select(select).select_by_index(1)
time.sleep(1)
driver.quit()
5、Select模块-value
- 除了使用index方法定位,还有通过value值来定位
- 代码:
select = driver.find_element_by_xpath("//select")
Select(select).select_by_value("函数兔008集团")
time.sleep(1)
Select(select).select_by_value("金石基金测试0314日注册")
time.sleep(1)
Select(select).select_by_value("函数兔008集团")
6、Select模块-text
- 除了使用index方法定位,还有通过text值来定位
- 代码:
#通过text来定位
Select(select).select_by_visible_text("函数兔008集团")
time.sleep(1)
Select(select).select_by_visible_text("金石基金测试0314日注册")
time.sleep(1)
Select(select).select_by_visible_text("函数兔008集团")
7、Select模块-其他方法
- 除了使用index方法定位,还有通过text值来定位
- 以下方法没有使用过
deselect_all() :取消所有选项
deselect_by_index() :取消对应 index 选项
deselect_by_value() :取消对应 value 选项
deselect_by_visible_text() :取消对应文本选项
first_selected_option() :返回第一个选项
all_selected_options() :返回所有的选项