Python: webdriver操作select下拉选项, selenium设定select选项, selenium select dropdown, Handling Dropdowns

 

Python: webdriver操作select下拉选项, selenium设定select选项, selenium select dropdown, Handling Dropdowns
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

One Comment

Leave a Reply