Select提供了三种选择方法:
# 通过选项的顺序,第一个为 0 select_by_index(index) # 通过value属性 select_by_value(value) # 通过选项可见文本 select_by_visible_text(text)
Select提供了四种方法取消选择:
deselect_by_index(index) deselect_by_value(value) deselect_by_visible_text(text) deselect_all()
Select提供了三个属性方法给我们必要的信息:
# 提供所有的选项的列表,其中都是选项的WebElement元素 options # 提供所有被选中的选项的列表,其中也均为选项 all_selected_options的WebElement元素 # 提供第一个被选中的选项,也是下拉框的默认值 first_selected_option
示例代码:
from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get("http://************/center_tjbg.shtml") #通过contains函数,提取匹配特定文本的所有元素 frame = driver.find_element_by_xpath("//iframe[contains(@src,‘http://**********/cms-search/monthview.action?action=china&channelFidStr=e990411f19544e46be84333c25b63de6‘)]") #进入iframe页面 driver.switch_to.frame(frame) #获取select标签 select = driver.find_element_by_id("channelFidStr") # 获取select里面的option标签,注意使用find_elements options_list=select.find_elements_by_tag_name(‘option‘) # 遍历option for option in options_list: #获取下拉框的value和text print ("Value is:%s Text is:%s" %(option.get_attribute("value"),option.text)) #退出iframe driver.switch_to_default_content() driver.quit()
def is_option_value_present(self,element_id,tag_name,option_text):
driver = self.driver
select=driver.find_element_by_id(element_id)
# 注意使用find_elements
options_list=select.find_elements_by_tag_name(tag_name)
for option in options_list:
# print ("Value is: " + option.get_attribute("value"))
# print ("Text is:" +option.text)
if option_text in option.text:
select_value=option.get_attribute("value")
print ("option_textoption_textoption_textValue is: " + select_value)
break
return select_value