使用 Python 和 Selenium 处理页面中静态下拉列表有哪些方法?
在 Selenium 中处理页面上的静态下拉列表有多种方法。静态下拉列表是网页的重要组成部分。这种类型的 UI 元素通常用于页面上的生日或年龄选择。
下拉列表不是单独的元素。它是一组元素。例如,对于出生日期的选择,我们需要为日期、月份和年份选择多个选项。因此,方法是首先获取主元素,然后转到其子元素进行选择。
Selenium API 提供了 Select 类,它可以处理页面上的静态下拉列表。我们需要导入 selenium.webdriver.support.select.Select 来处理 HTML 代码中包含 select 标签的静态下拉列表。
语法
Select(driver.find_element_by_tag_name("select"))
Select 类下的方法如下所示:
**select_by_visible_text(args)** - 通过显示的选项文本进行选择。
此方法是最简单的方法,它根据可见文本选择选项。如果不存在与参数中给定文本匹配的选项,则会抛出 NoSuchElementException 异常。
**语法** -
d = Select(driver.find_element_by_id("selection")) d.select_by_visible_text('Tutorialspoint')
**select_by_index(args)** - 通过选项的索引进行选择。
此方法根据特定选项的索引选择选项。元素的索引通常从 0 开始。如果不存在与参数中给定索引匹配的索引,则会抛出 NoSuchElementException 异常。
**语法** -
d = Select(driver.find_element_by_id("selection")) d.select_by_index(1)
**select_by_value(args)** - 通过选项的值进行选择。
此方法根据特定选项的值选择选项。如果不存在与参数中给定值匹配的值,则会抛出 NoSuchElementException 异常。
**语法** -
d = Select(driver.find_element_by_id("selection")) d.select_by_value('Selenium')
**deselect_by_value(args)** - 通过选项的值进行取消选择。
此方法根据特定选项的值取消选择选项。如果不存在与参数中给定值匹配的值,则会抛出 NoSuchElementException 异常。
**语法** -
d = Select(driver.find_element_by_id("selection")) d.deselect_by_value('Selenium')
**deselect_by_index(args)** - 通过选项的索引进行取消选择。
此方法根据特定选项的索引取消选择选项。元素的索引通常从 0 开始。如果不存在与参数中给定索引匹配的索引,则会抛出 NoSuchElementException 异常。
**语法** -
d = Select(driver.find_element_by_id("selection")) d.deselect_by_index(1)
**deselect_by_visible_text(args)** - 通过显示的选项文本进行取消选择。
此方法是最简单的方法,它根据可见文本取消选择选项。如果不存在与参数中给定文本匹配的选项,则会抛出 NoSuchElementException 异常。
**语法** -
d = Select(driver.find_element_by_id("selection")) d.deselect_by_visible_text('Tutorialspoint')
**deselect_all()** - 取消选择所有选定的选项。
此方法适用于可以进行多个选项选择的情况。它会移除下拉列表中所有选定的选项。如果无法从下拉列表中选择多个选项,则会抛出 NotImplementedError 异常。
**语法** -
d = Select(driver.find_element_by_id("selection")) d.deselect_all()
**all_selected_options()** - 所有选定选项的列表。
此方法适用于可以进行多个选项选择的情况。它会返回 select 标签下所有选定选项的列表。
**语法** -
d = Select(driver.find_element_by_id("selection")) o = d.all_selected_options()
**first_selected_option()** - 返回第一个选定的选项。
此方法会返回下拉列表中当前选定的选项。它也适用于多选下拉列表,在这种情况下,它会返回下拉列表中第一个选定的选项。
**语法** -
d = Select(driver.find_element_by_id("selection")) o = d.first_selected_option()
**options()** - 所有选项的列表。它会返回 select 标签下所有选项的列表。
**语法** -
d = Select(driver.find_element_by_id("selection")) o = d.options()