import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome.options import Options
driver = webdriver.Chrome()
driver.get("http://sahitest.com/demo/selectTest.htm")
# 只能选择的下拉框
el1 = driver.find_element_by_id("s1Id")
# 实例化一个select对象
s = Select(el1)
# 按索引选择
s.select_by_index(2)
# 按value属性选择下拉项
s.select_by_value("o2")
# 按文本选择下拉项
s.select_by_value("o3")
# 可以选择,取消的下拉框:有一种特殊的select标签,即设置了multiple="multiple"属性的select标签,这种select标签是可以多选的,取消操作只适用于添加了multiple的下拉框否则会报错
el2 = driver.find_element_by_id("s4Id")
# 实例化一个select对象
s = Select(el2)
# 按索引选择
s.select_by_index(1)
time.sleep(1)
# 按索引取消
s.deselect_by_index(1)
# 按value选择
s.select_by_value("o2val")
time.sleep(1)
# 按value取消
s.select_by_value("o2val")
# 按文本选择
s.select_by_visible_text("o3")
time.sleep(1)
# 按文本取消
s.deselect_by_visible_text("o3")
# 全部取消
s.deselect_all()
# 获取全部下拉项
print(s.options)
# 获取已选择的下拉项
print(s.all_selected_options)
# 获取第一个选择的下拉项
print(s.first_selected_option)
# 查看下拉项的文本值
first_select = s.first_selected_option
print(first_select.text)