Selenium provides 3 methods for selecting the options in the drop-down menu, and then encapsulates and calls these three methods respectively.
Method encapsulation
from selenium.webdriver.support.select import Select
def select_by_index(self, element, index):
"""
通过下拉菜单的索引,完成对选项的选择
:param element:
:param value:
:return:
"""
Select(element).select_by_index(index)
def select_by_value(self, element, value):
"""
通过选项值,完成对选项的选择
:param element:
:param value:
:return:
"""
Select(element).select_by_value(value)
def select_by_text(self, element, text):
"""
通过选项的文本,完成对选项的选择
:param element:
:param text:
:return:
"""
Select(element).select_by_visible_text(text)
Method call
def test_select(self):
chrome_driver = webdriver.Chrome()
chrome_driver.get("http://www.baidu.com")
chrome_driver.implicitly_wait(30)
mouse = chrome_driver.find_element_by_link_text("设置")
ActionChains(chrome_driver).move_to_element(mouse).perform()
chrome_driver.find_element_by_link_text("搜索设置").click()
time.sleep(5)
chrome_driver.find_element_by_name("NR").click()
time.sleep(5)
select = chrome_driver.find_element_by_name("NR")
Browser_Controller(chrome_driver).select_by_value(select, "20")
time.sleep(5)
Browser_Controller(chrome_driver).select_by_index(select, 1)
time.sleep(5)
Browser_Controller(chrome_driver).select_by_text(select, "每页显示50条")
time.sleep(5)
Method extension
In fact, Selenium provides not only three methods for encapsulating drop-down menu options, but also the method for canceling option selection as shown below
deselect_by_index(index) # 根据索引取消选择
deselect_by_value(value) # 根据value取消选择
deselect_by_visible_text(text) # 根据文本取消选择
deselect_all() # 取消所有选择