• Java测试(10)--- selenium


    1.定位一组元素

    (1)如何打开本地的HTML页面

    拼成一个URL :file: + /// + 文件的绝对路径

    import os  os.path.abspath(文件的绝对路径)

    (2)先定位出同一类元素(tag name,name,class name等),然后根据需要定位的元素的特征(type)去甄别出要定位的具体元素进行操作。

    2.多层框架的定位

    iframe--->框架里面的嵌套框架

    解决不同层框架上的页面的元素的定位

    driver.switch_to.frame("f1")

    (1)如果要定位一个层级框架中的元素,必须先调到这个框架层级,才可以定位;

    (2)如果要定位某一个层级,必须从默认页面跳转;

    driver.switch_to.default_content()

    default context-->f1 正确;

    default context-->f2 错误;

    f1-->f2 正确;

    f2-->f1 错误;

    3.层级定位

    4.下拉框的选择

    (1)直接用xpath定位

    (2)先定位出一组元素(tag name等),然后根据元素的属性进新房过滤筛选,再进行具体操作

    (3)先定位出一组元素(tag name等),通过数组下标的方式定位

    5.alert框的处理

    • 定位弹出框/获得弹出框的操作句柄-->alert = driver.switch_to.alert
    • 关闭alert-->alert.accept()

    在alert弹框输入相应信息

    • 先获得弹出框的操作句柄-->alert = driver.switch_to.alert
    • 再用send_keys去输入信息-->alert.send_keys("夏天好!")

    6.div块的处理

    适用于页面复杂,元素非常多,没有id,并且name,或i这tag name 重复

    (1)首先要定位元素所在的div模块

    (2)在定位到的div模块的基础上去精确寻找需要定位的元素

    7.上传文件

    定位上传按钮

    send_keys(需要上传文件的绝对路径+文件名字)

    driver.find_element_by_name("file").send_keys("C:\\Users\\18591\\Pictures/test.png")

    8.为什么有些第三方网站的页面元素无法定位

    //输入账户名

    driver.find_element_by_id("auto-id-1655608724515").send_keys("18591231900")

    //输入密码

    driver.find_element_by_id("auto-id-1655608984198").send_keys("huawei89")

    selenium3

    1>unittest框架

    UI功能单元测试

    (1)测试固件(框架里面的固定的方法)

    setup方法,测试环境和数据的准备工作

    tearDown方法,做测试用例执行完成之后的清理工作

    (2)测试用例

    一个用例是一个方法    def名字以test_开头

    (3)测试套件

    把测试用例组织到一起进行一个整体的测试

    必须以继承的方式来使用

    2>测试套件

    (1)unittest.TestSuite

    addTest(脚本名称.类名称.方法名)

    makesuit    unittest.makeSuite(脚本名称.类名称)-->可以把一个类中所有的测试方法添加到测试套件中

    TestLoader

    unittest.TestLoader().loadTestFromTestCase-->把一个类中所有的测试方法创建成一个测试套件返回

    (2)把一个文件夹下所有测试脚本的测试用例都执行一遍

    discover

    unitttest.defaultTestLoader.discover("../src20211230",pattern="testbaidu*.py",top_level_dir=None)

    ../src20211230--->文件夹;后面的表示要运行测试用例所在的文件的名称

  • 相关阅读:
    数据结构(6)树形结构——平衡二叉树(JAVA代码实现)
    BUUCTF [MRCTF2020]Ez_bypass1
    【Spring Boot】
    【Docker学习】docker login/logout
    消息队列—RabbitMQ如何保证消息可靠性?
    UVa11324 - The Largest Clique
    c++ SFML ftp重命名文件
    【JavaSE】JavaSE之控制逻辑
    【案例】3D地球(vue+three.js)
    彻底理解Java并发:Java内存模型
  • 原文地址:https://blog.csdn.net/m0_58272200/article/details/131943224