zoukankan      html  css  js  c++  java
  • UI自动化之特殊处理二(弹框下拉框选项文件上传)

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

    目录

    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的,借助第三方模块

    第一步:安装Sendkeys模块

    pip install SendKeys

    第二步:应用

    import SendKeys
    
    #SendKeys方法输入内容
    SendKeys.SendKeys(r"文件路径")#发送文件地址
    time.sleep(1)
    SendKeys.SendKeys("{ENTER}")#发送回车键
    time.sleep(1)
    #SendKeys.SendKeys("{ENTER}")#如果是电脑搜索输入法,需要多一次回车
    

      

  • 相关阅读:
    linux下查看主板内存槽与内存信息
    centos 6 与 centos 7 服务开机启动、关闭设置的方法
    linux 配置本地光盘YUM源
    linux crontab定时任务不执行
    Linux下安装MySQL5.6
    Linux shell 自动删除n天前日志
    nginx request_time 和upstream_response_time
    linux中文件多行合并为一行的例子
    awk 处理文本:行转列,列转行
    nfs环境搭建报错clnt_create: RPC: Program not registered
  • 原文地址:https://www.cnblogs.com/weizhideweilai/p/9642564.html
Copyright © 2011-2022 走看看