Selenium + Python自动化测试入门

Selenium介绍

  Selenium 是支持web浏览器自动化的一系列工具和库的综合项目,Selenium 的核心是 WebDriver,这是一个编写指令集的接口,可以在许多浏览器中互换运行。

环境搭建

Python安装

  1. mac系统自带的Python版本是2.7(版本低),直接通过命令brew install python3安装即可
    在这里插入图片描述
  2. 通过which python3查看安装位置
    在这里插入图片描述
  3. 在终端运行python3,看到下面的画面,就说明Python安装成功!
    在这里插入图片描述

安装Pycharm

  1. Pycharm官网下载编辑器
  2. 创建文件夹(例如selecode)
  3. Pycharm打开selecode文件夹,进行如下设置
    在这里插入图片描述

selenium安装

  1. pip安装

    1.1 下载pip

    curl https://bootstrap.pypa.io/pip/get-pip.py -o get-pip.py
    

    1.2 安装
    在这里插入图片描述

  2. 通过pip安装selenium

    pip install selenium
    
  3. 查看selenium

    pip show selenium
    

    在这里插入图片描述

WebDriver安装

  1. 查看浏览器版本,WebDriver版本需要和浏览器版本保持一致在这里插入图片描述
  2. 下载和浏览器对应版本的WebDriver
    在这里插入图片描述
  3. 添加环境变量
    vim ~/.profile
    export PATH="$PATH:/usr/local/chromedriver"
    source ~/.profile
    
    3.1 mac还需要添加信任,在webdriver目录下,执行
    在这里插入图片描述
    chromedriver % xattr -d com.apple.quarantine chromedriver	
    
    3.2 在控制台测试下是否生效
    在这里插入图片描述

selemium的基本使用

  1. 创建python文件
    在这里插入图片描述
  2. 邮件运行下方demo代码,查看效果
    在这里插入图片描述

元素定位

  1. ID定位
    在这里插入图片描述
  2. xpath定位(直接Copy full Xpath)
    在这里插入图片描述
    在这里插入图片描述

多窗口

  1. 在selenium中,通过一个随机生成的字符串(uuid)来唯一标识某个窗口
  2. 执行js:window.open打开新窗口
    new = 'window.open("https://service.homepartners.tech/sso/Account/Login?ReturnUrl=%2Fsso%2Fconnect%2Fauthorize' \
      '%2Fcallback%3Fclient_id%3Dhpa-ctm-vendor-portal%26redirect_uri%3Dhttps%253A%252F%252Fvendor.homepartners.tech' \
      '%252Fcallback%26response_type%3Dtoken%2520id_token%26scope%3Dopenid%2520profile%2520vendor-api%2520foundation' \
      '-api%26state%3D5a6d7d6d84264b828f02081ac9fb1c3a%26nonce%3D7cb02e1da5214cd0828d4373b29e5b66"); '
      
    driver.execute_script(new)
    
  3. handler的获取
    3.1 获取所有:driver.window_handlers
    3.2 获取单个:driver.current_window_handle
    3.3 切换:driver.switch_to_window(handle)
    在这里插入图片描述

束语

  通过上述操作就可以做一些简单的demo,但如何出报表?如何工程化?以及后续怎么部署迭代?还需要进一步去学习


版权声明:本文为weixin_40803011原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。