码迷,mamicode.com
首页 > Web开发 > 详细

UI自动化之特殊处理二(弹框\下拉框\选项\文件上传)

时间:2018-09-14 00:05:00      阅读:371      评论:0      收藏:0      [点我收藏+]

标签:import   自动化   val   file   type=file   python   选项   check   click   

弹框\下拉框\选项\文件上传也是一些比较特殊的操作

 

目录

1、弹框

2、下拉框

3、选项

4、文件上传

 

1、弹框

弹框有三种形式,value为alert、confirm、prompt三种的弹框,第一个仅可点击确认,第二个可点击取消和确认,第三个可以输入内容再点击取消或者确认

alert:仅需要定位到alert上,然后再确认

m= driver.switch_to_alert()
m.accept()

 confirm:定位到alert,点击取消或者确认

m= driver.switch_to_alert()
m.accept() #确认
m.dismiss() #取消,取消和确认选一种

 prompt:定位到alert,输入内容,再取消或者确认

m= driver.switch_to_alert()
m.send_keys("qq")
m.accept() #确认
m.dismiss() #取消,取消和确认选一种

  

2、下拉框

可通过一次定位和二次定位2种方法来定位

一次定位:

driver.find_element_by_xpath(".//[@id=‘nr‘]/option[3]").click()

 二次定位:

第一种,先定位到下拉框,再用xpath定位到下拉框的值

driver.find_element_by_id("nr").find_element_by_xpath("//option[@value=‘50‘]").click() 

第二种:用select模块二次定位

from selenium.webdriver.support.select import Select
‘‘‘通过索引‘‘‘
m = driver.find_element_by_id("nr")
Select(m).select_by_index(0)
‘‘‘通过value‘‘‘
m = driver.find_element_by_id("nr")
Select(m).select_by_value("20")
‘‘‘通过text‘‘‘
m = driver.find_element_by_id("nr")
Select(m).select_by_visible_text("每页显示 50 条")

3、选项

选项分为单选框和复选框

001、单选框:type=radio

直接找到,然后点击

driver.find_element_by_xpath(".//*[@type=‘radio‘]").click()

002、复选框:type=checkbox

想要全部点击,需要用find_elements方法,然后再循环点击

checkboxs=driver.find_elements_by_xpath(".//*[@type=‘checkbox‘]")
for i in checkboxs:
   i.click()

003、是否选中

is_selected(),为True时,为选中,为False,没选中,用来测试点击的结果

driver.find_element_by_xpath(".//*[@type=‘radio‘]").click()
m=driver.find_element_by_xpath(".//*[@type=‘radio‘]").is_selected()
print m

  

4、文件上传

文件上传分为2种,一种type为file,一种不为file

001、type=file的,直接使用send_keys()

driver.find_element_by_id("qq").send_keys(r"d:\qq.png")

002、type非file的,借助第三方模块

 

UI自动化之特殊处理二(弹框\下拉框\选项\文件上传)

标签:import   自动化   val   file   type=file   python   选项   check   click   

原文地址:https://www.cnblogs.com/weizhideweilai/p/9642564.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!