码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python+Selenium自动化测试


    文章目录

    • 1.selenium介绍
    • 2.selenium的使用步骤
    • 3.浏览器前进&后退&刷新
    • 4.窗口切换
    • 5.窗口截图
    • 6.鼠标悬停
    • 7.元素定位
      • 7.1.ID定位
      • 7.2.name定位
      • 7.3.class_name定位
      • 7.4.tag_name定位
      • 7.5.link_text定位
      • 7.6.partial_link_text定位
      • 7.7.定位一组元素
    • 8.Xpath定位
      • 8.1.Xpath路径定位
      • 8.2.Xpath属性定位
      • 8.3.利用and or组合定位
      • 8.4. 利用元素文本定位:text()
      • 8.5. 利用局部属性值定位contains( , )
      • 8.6.Xpath层级定位
    • 9. CSS定位
    • 10. 模拟鼠标滚动
    • 11. 其他方法
    • 12. 执行UI自动化时如果找不到元素该分析哪些原因

    1.selenium介绍

    1. Selenium是最广泛使用的开源Web UI(用户界面)自动化测试套件之一。
    2. selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
    3. selenium也是支持无界面浏览器操作的

    2.selenium的使用步骤

    #1.导包
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    import time
    #2.初始化一个火狐浏览器实例
    driver = webdriver.Firefox()
    #3.打开web页面
    URL= "http://blog.csdn.net"
    derive.get(URL)
    #4.停留时间
    time.sleep(10)
    #5.退出驱动
    drive.quit()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3.浏览器前进&后退&刷新

    #浏览器前进
    driver.forward()
    #浏览器后退
    driver.back()
    #浏览器刷新,设置刷新一定要等待几秒
    driver.refresh()
    time.sleep(5)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4.窗口切换

    在selenium操作页面的时候,可能会因为点击某个链接而跳转到一个新的页面,这时候selenium实际还处于上一个页面,需要我们进行切换才能够定位最新页面上的元素。

    #获取所有窗口句柄
    handles=driver.window_handles
    #切换到最新窗口
    driver.switch_to.window(handles[-1])
    
    • 1
    • 2
    • 3
    • 4

    5.窗口截图

    通常UI自动化测试的时候是无人值守的,同时错误信息记录不是很明确,有截图的情况下能快速分析错误原因

    #截图文件的绝对路径
    driver.get_screenshot_as_file('图片保存路径')
    derive.save_screenshort('test.png')
    #截取后直接是二进制
    derive.save_screenshort_as_png()
    
    • 1
    • 2
    • 3
    • 4
    • 5

    6.鼠标悬停

    作用一般是为了显示隐藏的下拉框

    ActionChains(driver).move_to_element().perform()
    
    • 1

    7.元素定位

    元素:在网页上面的文本输入框,按钮,多选,单选,标签和文字都叫元素,总之凡是能在页面显示的对象都可以作为页面元素对象。
    元素定位目的:希望在整个html中,快速找到要操作的元素,尽量只匹配到1个。
    Selenium一共有八种元素定位方法:

    7.1.ID定位

    通过页面内元素的ID属性进行定位,前提是这个元素有ID属性

    #html
    <input type="text" name="enroll" id="user">
    #send_keys
    • 1
    • 2
  • 相关阅读:
    【数据结构】二叉树的前序遍历(七)
    电脑屏幕亮度怎么调节?台式电脑找不到屏幕亮度怎么办
    带头节点的单链表练习(写加注释花了5小时,已废)
    模型UV纹理设置工具
    朗强科技:HDMI网线延长器有什么优势
    产品外观设计成本的组成,你知道吗?
    黑猫带你学Makefile第10篇:如何将未被编译的代码/自己写的驱动编译进uboot
    Volatile:JVM 我警告你,我的人你别乱动!
    python http服务屏蔽响应日志输出,终端不输出时间日志
    java计算机毕业设计后勤管理系统MyBatis+系统+LW文档+源码+调试部署
  • 原文地址:https://blog.csdn.net/sinat_41774721/article/details/134039153
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号