• 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--->文件夹;后面的表示要运行测试用例所在的文件的名称

  • 相关阅读:
    分割集合list成为多个子list
    第16篇:JTAG UART IP应用<三>
    python yaml库:safe_load()(安全解析函数,解析yaml)(防止yaml文件中包含恶意代码)
    Flutter入门-路由
    【第四篇】XiaoZaiMultiAutoAiDevices之核心机制
    OpenAI宣布暂停ChatGPT plus用户订阅,解决方案,无需等待立马升级
    Ubuntu 软件包管理工具 —— dkpg、apt(dpkg常用指令、apt 软件源的配置)
    sql注入手法详解
    新唐(nuvoton)MCU软件开发指南—环境搭建设置
    [学习记录] SpringBoot 4. 开发技巧
  • 原文地址:https://blog.csdn.net/m0_58272200/article/details/131943224