下拉框实战 —Python自动化测试实战(6)

发表于:2019-6-19 11:20

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:无涯    来源:51Testing软件测试网原创

  3.3下拉框实战
  1.Select类的详解
  在UI自动化测试中,经常会遇到下拉框的应用。针对下拉框,Selenium提供了Select类来处理,Select类在select模块中。使用Select类首先需要导入,导入方式是fromselenium.webdriver.support.selectimportSelect。在Select类中,构造方法的参数是webelement,检查指定的元素时,如果参数错误就会抛出UnexpectedTagNameExpection的异常错误信息。在Select类中提供了很多方法可在下拉框定位中使用,下面具体介绍这些方法的应用。
  2.下拉框定位的思路
  这里以在百度搜索设置中设定期望搜索结果显示的条数为例,说明下拉框操作方式,如图3-3-1所示。
  
图3-3-1
  这部分的HTML代码如下:
<selectid="nr"name="NR">
<optionvalue="10"selected="">每页显示10条</option>
<optionvalue="20">每页显示20条</option>
<optionvalue="30">每页显示50条</option>
</select>
  下拉框的元素属性ID是nr,在图3-3-1中,实现选择下拉框选项内容的步骤为:
  (1)首先定位到Select下拉框的元素属性,具体代码是nr=driver.find_element_by_id('nr')。
  (2)实例化Select类,参数为nr,具体代码为select=Select(nr)。
  (3)Select实例化后的对象select可以调用Select类的任何一个方法。
  3.索引定位实战
  使用索引的方式实现下拉框选项的选择,用到的方法是select_by_index。该方法的参数是索引值。例如,想要实现每页显示50条,它在第三位(参见图3-3-1),由于索引是从0开始的,所以索引就是2,实现的代码如下:
#!/usr/bin/envpython
#-*-coding:utf-8-*-
#author:wuya
fromseleniumimportwebdriverfromselenium.webdriver.support.selectimportSelectfromselenium.webdriver.common.action_chainsimportActionChainsimporttimeast
driver=webdriver.Firefox()driver.maximize_window()driver.implicitly_wait(30)driver.get('http://www.baidu.com')
#实现鼠标悬浮到百度首页的设置
element=driver.find_element_by_css_selector('a.pf:nth-child(8)')t.sleep(3)
ActionChains(driver).move_to_element(element).perform()t.sleep(3)
#点击设置中的搜索设置按钮
driver.find_element_by_css_selector('.setpref').click()t.sleep(2)
#定位到下拉框的元素属性
nr=driver.find_element_by_name('NR')
#实例化Select类
select=Select(nr)select.select_by_index(2)print('下拉框选择的新条数是:',nr.get_attribute('value'))t.sleep(3)driver.quit()
  4.value定位实战
  通过Value值可定位下拉框中的选项,用到的方法是select_by_value。该方法的参数是下拉框中具体的Value值,需要选择下拉框中的哪个值,直接在该方法的参数中填写具体的Value值即可。本例中的Value值是10、20、50,这里选择在下拉框中每页显示20条,则对应的Value值是20,实现的代码如下:
#!/usr/bin/envpython
#-*-coding:utf-8-*-
#author:wuya
fromseleniumimportwebdriverfromselenium.webdriver.support.selectimportSelectfromselenium.webdriver.common.action_chainsimportActionChainsimporttimeast
driver=webdriver.Firefox()driver.maximize_window()driver.implicitly_wait(30)driver.get('http://www.baidu.com')
#实现鼠标悬浮到百度首页的设置
element=driver.find_element_by_css_selector('a.pf:nth-child(8)')t.sleep(3)
ActionChains(driver).move_to_element(element).perform()t.sleep(3)
#点击设置中的搜索设置按钮
driver.find_element_by_css_selector('.setpref').click()t.sleep(2)
#定位到下拉框的元素属性
nr=driver.find_element_by_name('NR')
#实例化Select类
select=Select(nr)
#按value值的方式来选择下拉框中的内容
select.select_by_value('20')print('下拉框选择的新条数是:',nr.get_attribute('value'))t.sleep(3)driver.quit()
  5.文本定位实战
  使用文本的方式实现对下拉框中选项的选择,用到的方法是select_by_visible_text,参数是具体的text值。本例中搜索设置下拉框的文本信息具体为"每页显示10条""每页显示20条""每页显示50条"。这里选择在下拉框中每页显示50条,那么调用的时候,实际参数就是"每页显示50条",实现该测试点的代码如下:
#!/usr/bin/envpython
#-*-coding:utf-8-*-
#author:wuya
fromseleniumimportwebdriverfromselenium.webdriver.support.selectimportSelectfromselenium.webdriver.common.action_chainsimportActionChainsimporttimeast
driver=webdriver.Firefox()driver.maximize_window()driver.implicitly_wait(30)driver.get('http://www.baidu.com')
#实现鼠标悬浮到百度首页的设置
element=driver.find_element_by_css_selector('a.pf:nth-child(8)')t.sleep(3)
ActionChains(driver).move_to_element(element).perform()t.sleep(3)
#点击设置中的搜索设置按钮
driver.find_element_by_css_selector('.setpref').click()t.sleep(2)
#定位到下拉框的元素属性
nr=driver.find_element_by_name('NR')
#实例化Select类
select=Select(nr)
#按value值的方式来选择下拉框中的内容
select.select_by_visible_text('每页显示50条')print('下拉框选择的新条数是:',nr.get_attribute('value'))t.sleep(3)driver.quit()

查看《Python自动化测试实战》全部连载内容>>
版权声明:51Testing软件测试网获得电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号