• 【UI自动化测试】selenium + python3使用总结(二)


    一、前言

    安装见
    【python】Selenium+python3使用总结(一)

    二、简单的自动化脚本示例

    实现功能:打开浏览器=》输入百度网址搜索=》在搜索框输入python=》点击百度一下

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    import time
    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com/")
    driver.find_element(by=By.ID, value="kw").send_keys("python")
    driver.find_element(by=By.ID, value="su").click()
    driver.quit()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    三、元素定位

    元素定位是自动化测试的核心

    定位方法主要有:(1)id ; (2) name; (3)class name ; (4) tag name ; (5) xpath ; (6) css selector ; (7) link test ; (8) partial link test ;

    其中xpath定位应用比较多。

    举例:
    <input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">

    如要定位此input输入框,可以用以下几种方式:

    • id定位

    dri.find_element(by=By.ID, value=“kw”).send_keys(“python”)

    • name定位

    dri.find_element(by=By.NAME, value=“wd”).send_keys(“python”)

    • tag name定位

    dri.find_element(by=By.TAG_NAME, value=“kw”).send_keys(“python”)

    • class name定位

    dri.find_element(by=By.CLASS_NAME, value=“s_ipt”).send_keys(“python”)

    • xpath定位

    dri.find_element(by=By.XPATH, value=“//input[@id=''kw]”).send_keys(“python”)

    • css定位

    dri.find_element(by=By.CSS_SELECTOR, value=“#kw”).send_keys(“python”)

    如要定位此文字链接,可以用以下几种方式:

    <a href="http://news.baidu.com" target="_blank" class="mnav">新闻</a>

    • link text定位

    dri.find_element(by=By.LINK_TEXT, value=“新闻”).send_keys(“python”)

    • partial link test 定位

    dri.find_element(by=By.PARTIAL_LINK_TEXT, value=“新闻”).send_keys(“python”)

    五、浏览器操作

    • 浏览器最大化

    dri.maxmize_window()

    • 设置浏览器宽度、高度

    dri.set_window_size(500,500)

    • 浏览器前进、后退

    dri.forward()
    dri.back()

    六、操作测试对象

    常用的方法有以下几种:

    • click 点击
    • send_keys 输入
    • submit 提交
    • clear 清除
    • text 获取元素的文本信息

    七、获取属性值

    element.get_attribute(“value”)

    八、鼠标事件

    ActionChains类:
    需要先加载
    from selenium.webdriver.common.action_chains import ActionChains

    • context_click() 右击

    ActionChains(dri).context_click(ppp).perform() #ppp是要操作的元素

    • double_click() 双击
    • drag_and_dorp() 拖动

    九、等待时间

    1、强制等待时间 time.sleep(3)
    2、显示等待时间 WebDriverWait()
    3、隐式等待时间 implicitly_wait()

    from selenium import webdriver
    from selenium.webdriver.support.wait import WebDriverWait 
    import time
    
    driver = webdriver.Chrome()
    element = WebDriverWait(driver, 10).until(lambda x: x.find_element(By.ID, "someId")) 
    is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)).\
                until_not(lambda x: x.find_element(By.ID, "someId").is_displayed())
    
    driver.implicitly_wait(30)
    time.sleep(3)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    AI绘画想生成好看的图,这些技巧不得不掌握
    串口通信printf函数重定向
    Lumiprobe非荧光炔烃丨EU(5-乙炔基尿苷)
    SpringCloud Alibaba(保姆级入门及操作)
    Android平台GB28181执法记录仪技术方案
    备份系统运行数据采集及分析方法
    Unity Meta Quest MR 开发(七):使用 Stencil Test 模板测试制作可以在虚拟与现实之间穿梭的 MR 传送门
    【信号去噪】基于麻雀搜索算法优化VM实现信号去噪附matlab代码
    Hexo搭建个人博客模板(附源码)
    【华为机试 Python实现】图的遍历
  • 原文地址:https://blog.csdn.net/qq_35061334/article/details/125467170