zoukankan      html  css  js  c++  java
  • 你的第一个自动化测试:Selenium 自动化测试

    前言:
    让你掌握自动化测试暂时脱离手工点点点,本章节让你掌握 Selenium 如何定位、判定、操作元素(实现业务逻辑)

    一. 前期准备

      1、准备以下工具

    1、Selenium下载地址:立即下载
    2、通过 pip 命令下载:
    pip install selenium

    3、Firefox 驱动下载地址:立即下载

    把下载的Geckodriver放入Python安装路径下的Scripts文件夹内
    python36Scripts

    4、目标测试地址:

    https://www.cnblogs.com
    https://www.baidu.com

    备注:以上地址仅作为演示使用

    二. 测试开始

      1、Firefox 启动:

    from selenium import webdriver
    driver = webdriver.Firefox()
    
    # 即可启动 Firefox 浏览器

      2、打开网址:

    from selenium import webdriver
    driver = webdriver.Firefox()
    driver.get('https://www.baidu.com/')
    # 打开百度首页

      3、元素定位:

    '''
    Selenium 作为一款自动化测试工具包,提供了多种多样的元素定位方式,下边我们讲几种定位的方式
    
    通过元素 ID 来定位
    通过元素 Class 来定位
    通过元素 name 来定位
    通过元素 xpath 来定位
    '''
    from selenium import webdriver
    driver = webdriver.Firefox()
    driver.get('https://www.baidu.com/')
    driver.find_element_by_id("kw") # 这是通过元素 ID 来定位
    driver.find_element_by_class_name("s_ipt") # 这是通过元素 Class 来定位
    driver.find_element_by_name("wd") # 这是通过元素 name 来定位
    driver.find_element_by_xpath("//*[@id="kw"]") # 这是通过元素 xpath 来定位
    
    
    输出:
    <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="d053531b-e9a8-4729-8c0b-91aae35a7203", element="5616f958-9fa8-4d09-a6ce-243e94acd1ea")>
    
    # 这就是因为他们定位的方式不同,但对象是一样的,也就是为什么打印出的结果都是 ...243e94acd1ea]

    打印定位元素明细:

    >>> print driver.find_element_by_id("kw")
    <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="d053531b-e9a8-4729-8c0b-91aae35a7203", element="5616f958-9fa8-4d09-a6ce-243e94acd1ea")>
    
    >>> driver.find_element_by_class_name("s_ipt")
    <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="d053531b-e9a8-4729-8c0b-91aae35a7203", element="5616f958-9fa8-4d09-a6ce-243e94acd1ea")>
    
    >>> driver.find_element_by_name("wd")
    <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="d053531b-e9a8-4729-8c0b-91aae35a7203", element="5616f958-9fa8-4d09-a6ce-243e94acd1ea")>
    
    >>> driver.find_element_by_xpath('//*[@id="kw"]')
    <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="d053531b-e9a8-4729-8c0b-91aae35a7203", element="5616f958-9fa8-4d09-a6ce-243e94acd1ea")>
    
    <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="d053531b-e9a8-4729-8c0b-91aae35a7203", element="5616f958-9fa8-4d09-a6ce-243e94acd1ea")>
    详细代码

      4、判断元素是否存在:

    # 通过 Python 特性检查元素是否存在
    def test():
        try:
            driver.find_element_by_id("kw")
            return True
        except:
            return False
    # 存在返回 True or False
    
    #  =============
    
    if driver.find_element_by_id("kw"):
        print("True")
    else:
        print("False")
        
    # 存在返回 True

      5、元素的操作:

    # == 入门常用 ==
    # 操作单击按钮元素
    driver.find_element_by_id("kw").check()
    # 填写文本内容
    driver.find_element_by_id("kw").send_keys("Demo")
    # 清除文本内容
    driver.find_element_by_id("kw").clear()
    # 提交表单内容
    driver.find_element_by_id("kw").submit()

    三. 完整代码

      1、用户登录

    from selenium import webdriver
    driver = webdriver.Firefox()
    driver.get("https://127.0.0.1/login")
    driver.find_element_by_id("name").clear()
    driver.find_element_by_id("name").send_keys("你的用户名")
    driver.find_element_by_id("passwd").clear()
    driver.find_element_by_id("passwd").send_keys("你的密码")
    driver.find_element_by_id("login").click()
    driver.close()

      2、检查登录

        xxxxxxxxxxxxxxxx

     【还没更新完。。。。。。】

    作者:GI-JOE
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    从gcc代码看go语言goroutine和channel实现
    /proc/$pid/maps文件中各个空间段的意义
    gdb通过frame切换栈帧之后寄存器是否准确
    ssh channel功能实现源码分析
    protobuf中extension的使用
    从反射看protobuf的部分实现
    最新JetBrains PyCharm 使用教程--常用功能设置(三)
    IntelliJ IDEA 中设置左菜单字体, 编辑器字体和控制台的字体
    最新JetBrains PyCharm 使用教程--安装教程(一)
    开源管理系统
  • 原文地址:https://www.cnblogs.com/BenLam/p/9283183.html
Copyright © 2011-2022 走看看