<div class="container"> <div class="form-group"> <label for="platform" class="control-label col-xs-2">Platform:</label> <div…
Python: webdriver操作select下拉选项, selenium设定select选项, selenium select dropdown, Handling Dropdowns
下拉菜单是Internet上Web表单的固有部分。如果必须从可用选项列表中进行选择,则实现此目标的最佳方法是下拉菜单。一个非常普通的例子是您的出生年份,即某年某月某日。您将看到一个可滚动的下拉列表,该下拉列表允许您从其他各种元素的列表中选择单个元素。
下拉列表本身并不是单个元素。它实际上是一个程序集或一类元素。例如,您可以说国家是类,下拉列表中可用的值是各种对象。
要使用下拉菜单,首先需要选择或找到主要元素组,然后进一步进入内部并选择要为其选择的子元素。
选择一个下拉菜单
由于下拉菜单有很多选项,因此我们必须单独选择某些内容,这一点很重要。Selenium Python API提供了Select
该类,它使您可以选择所需的元素。
您可以在此处详细了解。
注意: Select
该类仅适用于具有选择标签的标签。
- 使用下拉索引
- 使用下拉菜单的值
- 使用下拉文本
使用下拉索引:
如果下拉列表具有“索引”属性,那么我们可以使用该索引来选择特定选项。使用这种方法时需要小心,因为索引从0开始并不少见,因此,如果您认为索引的工作方式与国家/地区相似,那么您可能会误会。
我们可以使用该select_by_index( )
方法通过
index属性选择一个选项。
例如
s1= Select(driver.find_element_by_id('id_of_element')) s1.select_by_index(5)
使用下拉列表的值:
如果html标记定义了一个选项标签,则可以使用与参数匹配的值。假设下拉的html是这样的
<option value="foo">Bar1</option>
我们可以使用该select_by_value( )
方法通过
index属性选择一个选项。
例如
s2= Select(driver.find_element_by_id('id_of_element')) s2.select_by_value('foo')
使用下拉文本:
可能是最简单的方法。您必须匹配下拉菜单中显示的文本。
例如
s3= Select(driver.find_element_by_id('id_of_element')) s3.select_by_visible_text('element_text')
下面,我们学习如何删除我们的选择。
从下拉列表中取消选择选项
现在,如果要取消选择刚刚选择的选项怎么办?您也可以使用以下方法实现此目的:
deselect_all( )
清除所有选定的选项。这仅适用于多个选择的情况。如果有多个选择框,则可以使用此框取消选择任何选定的选项。
如果在单选的情况下尝试使用此选项,则将引发NotImplementedError
异常。
deselect_by_index( )
使用“索引”属性清除所选的选项。这与select_by_index( )
方法相反。
deselect_by_value( )
使用选项的值清除所选的选项。这与select_by_value( )
方法相反
deselect_by_visible_text( )
使用选项文本清除所选选项。这与select_by_visible_text( )
方法相反
这是一个简单的程序,可以从AUT的下拉菜单中选择“Europe”。
__author__ = 'rahul' import unittest from selenium import webdriver from selenium.webdriver.support.select import Select class Drpdowm(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() def test_drpdown(self): driver = self.driver driver.maximize_window() driver.get('http://www.toolsqa.com/automation-practice-form/') s1=Select(driver.find_element_by_id('continents')) print(s1.options) for opt in s1.options: s1.select_by_visible_text('Europe') def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main()
其他方法:
driver.find_element_by_xpath("//select[@name='element_name']/option[text()='option_text']").click() driver.find_element_by_xpath("//select[@name='element_name']/option[@value='0']").click()
本文:Python: webdriver操作select下拉选项, selenium设定select选项, selenium select dropdown, Handling Dropdowns