• selenium + python自动化测试unittest框架学习(三)webdriver对页面其他控件操作(三)


    1.对话框,下拉框

    (1)对话框的有两种,一种是iframe格式的,需要switch_to_iframe()进行定位,现在大部分的对话框是div格式的,这种格式的可以通过层级定位来定位元素,先定位对话框的div,然后再对对话框的元素进行定位。

    (2)另外的弹出消息提示框有三种类型:alert,comfirm,prompt,三种类型的区别为;

    alert消息提示框仅提供“确定”按钮,用于警告等提示,comfirm提示框提供“是”和“否”的选择,prompt则是提示输入对话框,包含提示信息,输入文本框以及“确定”和“取消”按钮

    这几种消息提示框一般都是调用javascript来显示的,所以如何定位这些对话框里的元素?

    使用switch_to_alert定位弹出框,对于弹出框的主要操作有;

    text:获取文本值

    accept() :点击"确认"

    dismiss() :点击"取消"或者叉掉对话框

    send_keys() :输入文本值 ,该操作对于有输入文本框的prompt有效

    alert = driver.switch_to_alert()               #定位到弹出框
    print(alert.text)                              #获取弹出框提示信息
    alert.send_keys("my name is xiaoming")         #对于prompt的弹出框,在文本框中输入内容
    alert.accept()                                 #点击确定,或者alert.dismiss(),点击取消
    

    下拉框定位:

    (1)下拉列表<select>标签的,可以使用Select(driver.find_element_by_xxx(select元素定位)).select_by_xxx(列表项定位)来定位

    <select name="s1">
          <option value="1" title="option1" >1</option>
          <option value="2" title="option2" >2</option>
          <option value="3" title="option3" >3</option>
          <option value="4" title="option4" >4</option>
          <option value="5" title="option5" >5</option>
          <option value="6" title="option6" >6</option>
          <option value="7" title="option7" >7</option>
          <option value="8" title="option8" >8</option>
          <option value="9" title="option9" >9</option>
          <option value="10" title="option10" >10</option>
    </select>

    定位某一列的方式有以下方式,例如定位列表项1

    select_by_value(),Select(driver.find_element_by_name("s1")).select_by_value("1")

    select_by_index(),Select(driver.find_element_by_name("s1")).select_by_index(1)

    select_by_visible_text() # 通过选项文字进行选择,Select(driver.find_element_by_name("s1")).select_by_visible_tex("1")

    (2)下拉列表不是select标签,而是ul>li,则可以通过xpath或者css来定位列表项,先定位下拉菜单ul,再定位具体的列表项li。例如定位列表项的最后一项

    <ul name="u1">
          <li value="1" title="1" >1</lin>
          <li value="2" title="2" >2</lin>
          <li value="3" title="3" >3</lin>
          <li value="4" title="4" >4</lin>
          <li value="5" title="5" >5</lin>
    </ul>

    定位最后一项的xpath定位方式:/ul/li[last()] 选取属于ul 子元素li的最后一个 book 元素。

    driver.find_element_by_xpath("/ul/li[last()]")

    3.上传

    上传文件:定位上传文件的文本框类似输入文本框内容将文件的绝对路径输入send_keys("文件路径")

    send_keys("文件路径")
  • 相关阅读:
    (转)Java垃圾回收机制
    ThreadPoolExecutor线程池参数说明
    深入Synchronized和java.util.concurrent.locks.Lock的区别详解
    java集合类说明及区别
    JAVA中堆栈和内存分配
    深入理解Java对象序列化
    Java 序列化Serializable
    transient在java中的作用
    let和const命令
    第9章 css3多列布局
  • 原文地址:https://www.cnblogs.com/evablogs/p/7201364.html
Copyright © 2020-2023  润新知