zoukankan      html  css  js  c++  java
  • 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("文件路径")
  • 相关阅读:
    关于celery踩坑
    关于git的分批提交pull requests流程
    SymGAN—Exploiting Images for Video Recognition: Heterogeneous Feature Augmentation via Symmetric Adversarial Learning学习笔记
    AFN—Larger Norm More Transferable: An Adaptive Feature Norm Approach for Unsupervised Domain Adaptation学习笔记
    Learning to Transfer Examples for Partial Domain Adaptation学习笔记
    Partial Adversarial Domain Adaptation学习笔记
    Partial Transfer Learning with Selective Adversarial Networks学习笔记
    Importance Weighted Adversarial Nets for Partial Domain Adaptation学习笔记
    Exploiting Images for Video Recognition with Hierarchical Generative Adversarial Networks学习笔记
    improved open set domain adaptation with backpropagation 学习笔记
  • 原文地址:https://www.cnblogs.com/evablogs/p/7201364.html
Copyright © 2011-2022 走看看