• 多测师肖sir_高级金牌讲师___ui自动化之selenium001


    一、认识selenium
    (1)selenium是什么?

    a、selenium是python中的一个第三方库

    b、Selenium是一个应用于web应用程序的测试工具,支持多平台,多浏览器,多语言去实现ui自动化测试,我们现在讲的Selenium版本其实是Selenium2版本
    c、Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE,Firefox,Safari,Google Chrome等
    (2)selenium库用来做什么?
    UI自动化(界面设计)
    通过模拟用户手工操作ui页面方式,用代码去实现自动化操作和验证的行为

    (3)ui自动化的优点?
    a、解决重复性功能测试和验证
    b、减少测试人员在回归测试时用例漏测和验证点的漏测
    c、减少冒烟测试,回归测试的人力成本,节约时间提高效率。

    (4)ui自动化测试的情况?
    a.需求不稳定,无法进行ui自动化
    b.自动化用例的覆盖率,占用例15%-30%(正常场景)
    c、场景覆盖占当前功能场景70%-80%

    (5)UI自动化一般在什么时间做?
    1、接口测试
    2、功能测试
    3、ui自动化(在功能测试完以后)

    (6)ui自动化和功能测试那个重要?
    都重要,ui自动化测试是功能测试测试完以后进行

    (7)selenium的优点有哪些?
    a.工具免费
    b.安装简单,小巧,selenium其实就是一个包
    c.支持多语言(java,python)+selenium完成自动化测试
    d.支持多平台(window,linux)
    e.支持多浏览器 (ie,firefox,chrome)
    (8)Selenium工具原理是什么?
    Selenium2的核心是webdriver

    =========================================================
    二、安装selenium库
    (1)方法一:在dos命令下,输入以下命令
    pip3 install selenium3.141.0 版本
    pip install selenium 或python -m pip install selenium
    3.141.0
    在这里插入图片描述

    (2)在pycharm中seting中添加

    在这里插入图片描述

    备注:注意下版本,3.14.1
    在通过pip list 查看安装好的selenium 版本

    在这里插入图片描述

    第三方库存放在puython中的路径 :E:\python37\Lib\site-packages
    在这里插入图片描述

    ============================================

    三、安装谷歌浏览器和对应驱动

    1、谷歌驱动下载

    下载连接:https://registry.npmmirror.com/binary.html?path=chromedriver/
    在这里插入图片描述

    2、将驱动放在C:\python37
    在这里插入图片描述
    3、安装或下载谷歌浏览器
    查看浏览器版本
    在这里插入图片描述

    如果出现报错:
    在这里插入图片描述
    下载下urllib库,降低版本:pyhton -m pip install urllib3==1.26.15

    =========================================================
    调试是否安装:

    from  selenium import  webdriver
    import  time
    dx=webdriver.Chrome() #创建一个 webdriver对象
    dx.get("https://www.baidu.com/") #通过对象打开网址
    time.sleep(2) #休眠两秒
    dx.maximize_window() #窗口最大化
    dx.find_element_by_id("kw").send_keys("多测师") #根据id元素定位,输入内容
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    能运行表示环境安装好

    =========================================================
    1、打开浏览器
    格式:对象.get(“网站”)
    案例1:在同一个窗口,后一格浏览区覆盖前一个浏览器

    from  selenium import  webdriver
    import  time
    dx=webdriver.Chrome() #创建一个 webdriver对象
    dx.get("https://www.baidu.com/") #通过对象打开网址
    time.sleep(3)
    dx.get("https://www.jd.com/") #通过对象打开网址
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    案例2:格式:d.execute_script(“window.open(‘https://www.jd.com/’)”)
    重开一个窗口

    from  selenium import  webdriver
    import  time
    dx=webdriver.Chrome() #创建一个 webdriver对象
    dx.get("https://www.baidu.com/") #通过对象打开网址
    time.sleep(3)
    dx.get("https://www.jd.com/") #通过对象打开网址
    # dx.execute_script("window.open('https://www.jd.com/')") #重开窗口
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    =========================================================
    休眠:
    1.强制等待 sleep(xx) #等待时间是固定
    定义:强制等待我们可以通过time模块中time.sleep()来实现,不管浏览器是否加载完成,只要程序执行到等待设定的时间,就会等待,时间一到,就继续执行后面的程序了。
    2.隐性等待 implicitly_wait(xx) # #比sleep更节省时间
    定义:隐式等待可以通过implicitly_wait()方法实现,默认等待的时间为0秒,隐式等待可以设置一个时间间隔,网页加载完成,就立即执行下一步程序,不然就等到时间截止,然后执行下一步程序,所以implicitly_wait()比time.sleep()应用起来更加方便。

    3.显性等待 WebDriverWait(了解)
    定义:显式等待是代码中等待一定条件发生后再进一步执行你的代码,通过webDriverWait结合ExpectedCondition实现。实现的方法:程序每隔几秒判断一下设定的条件,如果条件成立,则执行下一步,否则就继续等待,直到超过设置的最长时间,然后抛出异常,
    在这里插入图片描述

    =================================

    refresh 页面刷新

    案例:

    from selenium import webdriver #d导入selenium库中webdriver
    from time import * #导入时间模块
    d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
    d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
    sleep(2)
    d.refresh()
    sleep(2)
    d.quit()

    =================================
    back 返回上一页

    from selenium import webdriver #d导入selenium库中webdriver
    from time import * #导入时间模块
    d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
    d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
    sleep(2)
    d.get(“https://www.jd.com/”)
    sleep(2)
    d.back()
    sleep(5)

    forward 切换到下一页

    from selenium import webdriver #d导入selenium库中webdriver
    from time import * #导入时间模块
    d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
    d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
    sleep(2)
    d.get(“https://www.jd.com/”)
    sleep(2)
    d.back()
    sleep(5)
    d.forward()
    d.quit()

    窗口最大化
    d.maximize_window() 窗口最大化

    from selenium import webdriver #d导入selenium库中webdriver
    from time import * #导入时间模块
    d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
    d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
    sleep(2)
    d.maximize_window() #窗口最大化
    d.quit()

    设置指定窗口的大小
    d.set_window_size(500,500)

    案例:

    from selenium import webdriver #d导入selenium库中webdriver
    from time import * #导入时间模块
    d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
    d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
    sleep(2)
    d.set_window_size(500,500)
    sleep(5)
    d.quit()

    退出方式:
    第一种:close
    第二种:quit
    案例1:关闭当前窗口 close

    案例2:quit

    from selenium import webdriver #d导入selenium库中webdriver
    from time import * #导入时间模块
    d=webdriver.Chrome() # 创建一d对象来打开浏览器,对浏览器实现操作
    d.get(“https://www.baidu.com/”) #通过对象谷歌浏览器输入网址,在用get方法打开网站
    sleep(2)
    d.execute_script(“window.open(‘https://www.jd.com/’)”)
    sleep(5)
    d.quit()

    截屏:
    对象.get_screenshot_as_file(“存放的路径”)

    d.get_screenshot_as_file(r"D:\f\aa.png")

  • 相关阅读:
    JavaWeb学习笔记(缺MVC架构模式)
    【Delphi】使用TWebBrowser执行JavaScript命令传入JSON参数执行出错解决方案
    初识html5
    ENVI_IDL: 批量制作专题地图
    iphone14到手了?你还需要一个专职管家!
    Python学习笔记之迭代器详解
    MySQL第七讲·怎么利用聚合函数实现高效地分组统计?
    群晖7.2版本安装CloudDriver2(套件)挂载alist(xiaoya)到本地
    边缘检测算法
    Java中什么是多态?多态的优势和劣势是什么?
  • 原文地址:https://blog.csdn.net/m0_47403059/article/details/133925376