使用 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()

更新于: 2020-07-29

222 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告