python自动化测试——下拉框与选择框处理

1. 前言

       在html标签中,经常会遇到下拉框和单、多选框的组件,在之前的元素定位方法中,一般是选用 find_element 方法来定位某个特定的对象,但如果我们要定位一组对象时,这时我们就需要应用到层级定位和find_elements来定位了。

 

2. 操作举例

2.1 下拉框处理

下拉框如下图所示:

 

python自动化测试——下拉框与选择框处理_第1张图片

下拉框部分html代码如下:



    
    
        

    



根据网页上的html标签,根据元素定位方法和层级定位的方式,逐级定位:

# -*- coding:utf-8 -*-
from selenium import webdriver
#方式一:
#先定位到下拉框
m_driver=driver.find_element_by_id('shopping')
#再定位到下拉列表,选择80%的选项
m_driver.find_element_by_xpath("//option[@value='80%']]").click()
#方式二:
#在一行中同时定位到想要的元素
driver.find_element_by_id('shopping').find_element_by_xpath("//option[@value='80%']]").click()
#方式三:
#直接使用xpath进行定位,并选择80%的选项
driver.find_element_by_xpath("//select[@id='shopping']]/option[7]]").click()

 

 

2.2 多选框处理

多选框处理:即可以同时选择多个选项,如下图所示:

python自动化测试——下拉框与选择框处理_第2张图片

 

多选框的部分html代码如下:

 
	 
	

 

对于多选框,我们要先找出多选框的所有元素,使用find_elements 来获取所有元素:

# -*- coding:utf-8 -*-
from selenium import webdriver
#方式一:
# 选择页面上所有的 tag name 为 input 的元素
inputs = driver.find_elements_by_tag_name('input')
#然后从中过滤出 tpye 为 checkbox 的元素,单击全部勾选
for input in inputs:
    if input.get_attribute('type') == 'checkbox':
        input.click()
#方式二:
# 选择所有的 type 为 checkbox 的元素并单击全部勾选
checkboxes = driver.find_elements_by_xpath(".//*[@type='checkbox']")
for checkbox in checkboxes:
    checkbox.click()
# 打印当前页面上 type 为 checkbox 的个数
print len(driver.find_elements_by_xpath(".//*[@type='checkbox']"))
# 把页面上最后1个 checkbox 的勾给去掉
driver.find_elements_by_xpath(".//*[@type='checkbox']").pop().click()

 

2.3 单选框处理

单选框顾名思义只能选择一个选项,如下图所示:

python自动化测试——下拉框与选择框处理_第3张图片

 

单选框的部分html代码如下:

 
	 
     
    

单选:性别


对于单选框,我们可以通过元素定位直接获取元素:

# -*- coding:utf-8 -*-
from selenium import webdriver
# 单选框的话,只要定位到该元素直接点击即可
driver.find_element_by_id('boy').click()
#判断是否被选定
driver.find_element_by_id("boy").is_selected()

 

 


欢迎关注「技术分享交流」公众号 ,在公众号里会不定期更新干货内容,欢迎您的加入!

python自动化测试——下拉框与选择框处理_第4张图片

 

 

 

你可能感兴趣的:(python自动化测试,selenium,定位,1024程序员节)