一篇学会Selenium

一篇学会Selenium 4.0

一、认识Selenium

1. 什么是Selenium

​ Selenium是一个用于Web应用程序自动化测试的工具,它可以模拟用户在浏览器中的操作,如点击、输入等,以检测应用程序的功能和性能。

2. Selenium的发展

​ Selenium起源于2004年,ThoughtWorks为了快速测试Web应用程序而开发的一款工具,这个工具是Selenium。

​ 早期Selenium是一个基于JavaScript的测试工具,被称为Selenium Core。它可以嵌入到浏览器中,通过JavaScript来操作Web页面并验证其功能。后来,Selenium RC(Remote Control)诞生了,它允许测试人员使用自己熟悉的编程语言(如Java、Python等)来编写测试脚本,并通过Selenium RC来控制浏览器执行测试。

​ 2009年,Selenium RC与WebDriver项目合并,形成了Selenium 2,也被称为Selenium WebDriver。WebDriver是一个更现代的浏览器自动化框架,它提供了更简洁、更易用的API,并支持更多的浏览器和操作系统。合并后的Selenium 2结合了Selenium RC和WebDriver的优点,成为了一个更强大、更灵活的Web应用程序测试工具。

​ 随着技术的发展和用户需求的变化,Selenium也在不断改进和升级,最新的Selenium版本是Selenium 4,它在Selenium 3的基础上进行了许多改进和优化。

二、为什么学习Selenium

​ 从2012年到2024年这12年里面,互联网得发展以及人们对于产品质量的要求越来越高,对于测试工程师(Quality Assurance Engineer)的要求从原来的“点点点”到能够使用开发技术进行辅助完成测试,其中开发技术辅助完成测试中,很重要的一环,便是回归测试环节。

​ 随着产品人员的不断迭代,回归测试任务变的越来越重,那么老功能的产品质量,聪明的测试工程师想到了自动化,针对Web UI自动化方面,绝大多数的测试选用了Selenium。

那么Selenium具备哪些优点:

  • 开源免费:Selenium是一个开源项目,用户可以免费使用和定制,这大大降低了测试成本。

  • 多浏览器支持:Selenium支持多种浏览器,如Chrome、Firefox、Safari等,甚至可以支持手机端的浏览器和原生应用程序,覆盖了大部分主流浏览器,可以满足不同需求。

  • 多语言支持:Selenium支持多种编程语言,如Java、Python、Ruby、C#等,方便开发人员使用自己熟悉的语言进行测试开发。

  • 灵活性高:Selenium提供了丰富的API和工具,可以模拟人类操作浏览器,实现点击、输入、滚动等操作,同时也支持各种断言和验证方式,可以灵活地定制测试脚本和测试流程。

  • 跨平台支持:Selenium可以在Windows、Linux和Mac OS等操作系统上运行,方便不同平台之间的协作和测试。

  • 易于使用:Selenium的API设计简单、易懂,同时提供了完善的开发文档,新手能够快速上手。

  • 插件丰富:Selenium有大量的插件和扩展,如WebDriverManager、TestNG、JUnit、pytest等,可以方便地扩展自己的测试用例。

  • 提高测试质量:Selenium可以保证测试环境的一致性和可重复性,有效避免了人为错误,提高测试的准确性和覆盖范围。

  • 支持并行测试:Selenium Grid允许测试人员在多台机器上并行执行测试,以提高测试效率。

三、环境搭建

1. Python虚拟环境管理

  • 安装Anaconda

  • 官网地址:https://www.anaconda.com/download

  • 配置环境变量:

  • 新建环境变量 ANACONDA

在这里插入图片描述

  • 将%ANACONDA%加入到PATH中

在这里插入图片描述

  • 新打开一个CMD,输入conda -V,如果看到了版本号,说明已经配置成功。

在这里插入图片描述

  • 创建虚拟环境 :
    • 命令行的方式 conda create -n myenv
    • 打开Anaconda的客户端,进入到客户端中创建虚拟环境
  • 查看虚拟环境列表:conda env list
  • 进入到虚拟环境中:conda activate myenv

在这里插入图片描述

  • 虚拟环境中,输入:pip list,可以查看出当前python所安装的全部包

  • 在虚拟环境中安装依赖包:

    pip install selenium -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
    
    • -i 命令后面跟的为指定镜像源,因为国外镜像源下载比较慢,所以需要指定一个国内的镜像源,国内常用镜像源:

      http://pypi.douban.com/simple/  豆瓣
      http://mirrors.aliyun.com/pypi/simple/ 阿里
      http://pypi.hustunique.com/simple/ 华中理工大学
      http://pypi.sdutlinux.org/simple/ 山东理工大学
      http://pypi.mirrors.ustc.edu.cn/simple/  中国科学技术大学
      

2. 安装IDE

  • 安装Pycharm community版本
  • 官网地址:https://www.jetbrains.com/pycharm/download/?section=windows

3. 配置虚拟环境

  • 安装完毕后,打开pycharm

  • ctrl + alt +s,打开看Setting页面

    在这里插入图片描述

  • 添加配置好的虚拟环境

    在这里插入图片描述

  • 配置创建的虚拟环境

    在这里插入图片描述

  • 设置完毕后,若是没有看到自己导入的包,点击使用conda的环境

    在这里插入图片描述

4. 安装Chromedriver

  • python根目录:E:\anaconda\envs\myenv

  • chromedriver的配置地址:https://googlechromelabs.github.io/chrome-for-testing/#stable

在这里插入图片描述

到这里,环境变量已经全部配置完毕了。

四、Selenium学习

学习大纲

在这里插入图片描述

1. 打开浏览器(Webdriver)

from selenium import webdriver

# webdriver.Chrome() 打开的为谷歌浏览器
driver = webdriver.Chrome()

在这里插入图片描述

  • 我们打开浏览器成功,但是发现当前存在两个小问题

    (1)显示【正受到自动化测试软件的控制】

    (2)浏览器仅打开一半,并未自动最大浏览器窗口

  • 去掉【正受到自动化测试软件的控制】

    options = webdriver.ChromeOptions()
    options.add_experimental_option('excludeSwitches', ['enable-automation'])
    
  • 窗口默认最大化

    driver.maximize_window()
    
  • 其他chrome options 实验性控制

    参数 解释
    -enable-automation 通知用户他们的浏览器是由自动测试控制的
    -enable-logging 控制是否启用控制台日志记录,并可选择配置其路由的位置

    其他实验的控制:https://blog.csdn.net/ASAS1314/article/details/85059896

  • 浏览器常规一些控制

    # 无界面模式
    options.add_argument('headless')
    # 指定用户客户端-模拟手机浏览
    options.add_argument('user-agent="MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"')
    # 禁用图片加载
    options.add_argument('blink-settings=imagesEnabled=false')
    # 隐身模式
    options.add_argument('incognito')
    # 自动打开开发者工具
    options.add_argument("auto-open-devtools-for-tabs")
    # 设置窗口尺寸,注意宽高之间使用逗号而不是x
    options.add_argument('window-size=300,600')
    # 设置窗口启动位置(左上角坐标)
    options.add_argument('window-position=120,0')
    # 禁用gpu渲染
    options.add_argument('disable-gpu')
    # 全屏启动
    options.add_argument('start-fullscreen')
    # 全屏启动,无地址栏
    options.add_argument('kiosk') 
     # 启动时,不激活(前置)窗口
    options.add_argument('no-startup-window') 
    

2. 打开指定网站

url = '指定的网站地址,如(http://www.baidu.com)'
driver.get(url)

3. 元素定位

方法 描述
By.ID 通过元素id进行定位
By.CLASS_NAME 通过元素class进行定位
By.NAME 通过元素name进行定位
By.TAG_NAME 通过元素标签进行定位
By.LINK_TEXT 通过元素超链接文本全称进行定位
By.PARTIAL_LINK_TEXT 通过元素超链接文本部分文本进行定位
By.XPATH 通过元素的xpath路径进行定位(万能定位)
By.CSS_SELECTOR 通过元素的css selector进行定位(万能定位且定位速度高于xpath)
(1)By.ID

在这里插入图片描述

SEARCH_BOX = (By.ID, 'kw')
element = driver.find_element(*SEARCH_BOX)
element.send_keys('By.ID')

结果

在这里插入图片描述

(2)By.CLASS_NAME

在这里插入图片描述

SEARCH_PICTURE_BTN = (By.CLASS_NAME, 'soutu-btn')
element = driver.find_element(*SEARCH_PICTURE_BTN)
element.click()

结果

在这里插入图片描述

(3)By.Name

在这里插入图片描述

SEARCH_BOX = (By.NAME, 'wd')
element = driver.find_element(*SEARCH_BOX)
element
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值