专栏首页前端架构web自动化测试(3):web功能自动化测试selenium基础课
原创

web自动化测试(3):web功能自动化测试selenium基础课

继上篇《web自动化测试(1):为什么选择selenium做自动化测试》,本文介绍如selenium使用

做UI自动化测试,需要什么技能

  1. 前端相关技术:HTML、XML、JavaScript、TCP/IP协议等
  2. 合适的工具选型:比如selenium,比如UTF等;
  3. 编程语言:selenium支持多种语言,java、C++、python、JavaScript等
  4. 需求分析:项目类型,特质,生命周期,是否适合开展自动化测试等;

如果只是做UI差异与还原度对比,用不着selenium大驾,phantomjs截图对比就好,推荐一个基于dom diff算法UI监控工具:page-monitor

本来准备万字长文,好好嗑叨一番,但是,觉得实在务必要。官网的介绍都很细:https://selenium.dev/documentation/en/,中文把en改为zh-cn即可:https://selenium.dev/documentation/zh-cn/

慕课网教程:Java Web自动化测试 Selenium基础到企业实际应用 https://coding.imooc.com/class/359.html

selenium现在官网分为三件套:

  1. Selenium IDE:是嵌入到浏览器的插件(目前仅支持chrome、Firefox),录制和回放Selenium脚本,录制好的脚本转换成各种Selenium WebDriver支持的程序语言,进而扩展到更广泛的浏览器类型;
  2. Selenium WebDriver:可支持多种语言,用于操作浏览器的一套API;支持各类型浏览器,跨操作系统;
  3. Selenium Grid:用于远程控制、分布式部署等,均可实现Selenium脚本的高效执行与拓展;使得自动化测试可以并行运行,甚至在跨平台、异构的环境中运行,包括主流的移动端环境,如Android、iOS

Selenium IDE操作指北

关键是chrome由于伟大的墙存在,下载不了chrome Selenium IDE扩展插件,如有需要,去本人的收集列表看看《Chrome扩展程序导出备份与本地导入浏览器 》

首先是Selenium IDE录制页面操作脚本,这个其实不做测试,平时玩着也蛮有趣的,操作如下

1、点击Selenium IDE插件,弹出界面,新建工程,输入测试用例名,点击ok,打开一个新窗口,(后面默认开始录制,你所有的操作没有按停止前,都是在录制转态)

2、再次点击,Selenium IDE插件,弹出界面,关闭录制按钮

3、操作界面。

这里的图很草。其实可以随便玩。像小孩子玩手机一样,左monkey测试,点多了自然会了

WebDriver操作

Selenium 的核心是 WebDriver,这是一个编写指令集的接口,可以在许多浏览器中互换运行

它允许用户模拟终端用户执行的常见活动;虽然 Selenium 主要用于网站的前端测试,但其核心是浏览器用户代理库。

webDrive直接下即可,https://selenium.dev/downloads/,前端,npm i selenium-webdriver

接着就是编写脚本,也可以从上面Selenium IDE

// 不管是java 还是python,都是需要导入webdriver包
// 库下载 https://selenium.dev/documentation/zh-cn/selenium_installation/installing_selenium_libraries/
const {Builder, By, Key, until} = require('selenium-webdriver');

(async function example() {
    let driver = await new Builder().forBrowser('chrome').build();
    try {
        // 控制浏览器:https://selenium.dev/documentation/zh-cn/webdriver/browser_manipulation/
        // 打开浏览器,WebDriver通常可以说有一个阻塞API。web平台本质上是异步的,所以WebDriver不跟踪DOM的实时活动状态。
        await driver.get('https://www.zhoulujun.cn/search.html?m=search&c=index&a=init&siteid=1&typeid=1&ajax=1&q=tar');

        // 找到搜索框(也可以 By.id('bdcsMain')),输入test,回车。
        await driver.findElement(By.name('q')).sendKeys('test', Key.ENTER);
        // 搜索页面,找到
        let firstResult = await driver.wait(until.elementLocated(By.css('h3>div')), 10000);
        console.log(await firstResult.getAttribute('textContent'));
        // 关闭浏览器
        browser.close()
    }
    finally{
        driver.quit();
    }
})();

webDrive库的安装:https://selenium.dev/documentation/zh-cn/selenium_installation/installing_selenium_libraries/

webDrive驱动安装:https://selenium.dev/documentation/zh-cn/selenium_installation/installing_webdriver_binaries/

如果不安装驱动,就会报错:The ChromeDriver could not be found on the current PATH. Please download the latest version of the

chrome驱动如下:http://chromedriver.storage.googleapis.com/80.0.3987.106/chromedriver_win32.zip

查找web元素,是selenium测试的重点,https://selenium.dev/documentation/zh-cn/webdriver/web_element/

查找元素的九种方法

By查找

  1. By.id
  2. By.name
  3. By.tagName
  4. By.className
  5. By.xpath  //常用
  6. By.css("#kw")
  7. By.partialLinkText //模糊匹配
  8. By.linkText("糯米") eg:<a>糯米<a/>

其实也就是我们常见的 css jquery 元素选择器而已。

browser查找

browser.find_element_by_css_selector('.logo')

这个去查API,或者查找browser方法

操作页面元素的方法

获取元素后,可以对页面元素执行相应的动作

input.clear()

input.send_keys('zhoulujun',Key.ENTER)

input.click()

在页面执行JavaScript

也可以写js执行

browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')

browser.execute_script('alert("To Bottom")')

Selenium Grid

Grid服务网格, 一台服务器作为转发器(hub)将JSON格式的测试命令转发到1台或多台注册的节点。 测试任务通过跟转发器(hub)的交互来操作远端浏览器实例。 转发器(hub)维护了一个可供使用的注册服务器列表,也允许我们通过转发器(hub)来控制这些实例。允许我们在多台节点服务器上并行执行测试, 同时也中心化的管理多个浏览器版本,多种浏览器的配置。(以替代传统的基于个人的测试)

按照官方的说法,下载 selenium-server-standalone JAR 文件,然后放在Tomcat起个服务就可。具体怎么配置,有空了再来写一篇。

同行文章推荐:

如何进行前端自动化测试? https://www.zhihu.com/question/29922082/answer/189594079

使用 Selenium 实现基于 Web 的自动化测试 https://www.ibm.com/developerworks/cn/web/1209_caimin_seleniumweb/index.html

Selenium自动化测试入门(基于Python)https://blog.csdn.net/baby_hua/article/details/80571109

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • selenium-java web自动化测试工具

    本篇文章由来,这两天整理了下自己经常使用而且很熟练的项目,今天突然想起漏了一个,补上了,但想到还没对应的博客,那就写一个简单的

    肖哥哥
  • Java自动化测试(web自动化测试框架 28)

    http://120.78.128.25:8765/Admin/Index/login.html

    zx钟
  • Selenium的Web自动化测试(送源码)

    Selenium是一个Web开源自动化测试框架,页面级操作,模拟用户真实操作,API从系统层面触发事件。

    测试开发社区
  • 基于Selenium+Python的web自动化测试框架

    Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium ...

    用户1257215
  • Java自动化测试(web自动化测试框架2 29)

    TakesScreenshot screenshot = (TakesScreenshot) driver;

    zx钟
  • web自动化测试(1):再谈UI发展史与UI、功能自动化测试

    行文前,安利下文章:《图形界面操作系统发展史——计算机界面发展历史回顾》、《再谈MV*(MVVM MVP MVC)模式的设计原理—封装与解耦》

    周陆军
  • 【自动化测试】Selenium

    web应用程序测试工具(录制、编写、运行、测试并行处理) api 编辑 并行测试

    瑞新
  • web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架

    官方下载地址:https://pypi.python.org/pypi/setuptools#downloads

    授客
  • 后selenium时代Web UI自动化测试框cypress

    优点:selenium 的 API 封装遵循 W3C 提供的 webdriver 标准,很好的支持主流浏览器chrome,firefox,IE,Safari等,...

    测试邦
  • 基于 Selenium WebDriver 的 Web 应用自动化测试(JS版)

    Selenium 是一个用于 Web 应用程序测试的工具,Selenium WebDriver 是Selenium 2.0 很重要的组成部分。 WebDrive...

    lilugirl
  • .NET Web 自动化测试工具

    Inspired by Watir development of WatiN started in December 2005 to make a simila...

    张善友
  • WEB-UI自动化测试-干货

    少年读书,如隙中窥月;中年读书,如庭中望月;老年读书,如台上玩月。皆以阅历之深浅,为所得之深浅耳。

    测试小兵
  • selenium-python自动化测试

    对web进行自动化测试的知识基本介绍的差不多了,接下来的时间,我会依次更新appium的部分,考虑到之前web部分介绍的有点零散,准备先把这部分知识进...

    无涯WuYa
  • python+ selenium自动化测试 - python基础扫盲

      这篇文章主要是分享讲解一下,如何封装自己用到的方法和类。以便方便自己和别人的调用,这样就可以避免重复地再造轮子。

    北京-宏哥
  • python+ selenium自动化测试 - python基础扫盲

      如果你从一开始就跟着宏哥看博客文章到这里,基础篇和练习篇的文章。如果你认真看过,并且手动去敲过每一篇的脚本代码,那边恭喜你,至少说你算真正会利用Python...

    北京-宏哥
  • AirTest-selenium基于Web实现UI自动化测试demo版本

    此文仅仅为个人学习demo记录,详细请参考官方文档说明: https://airtest.doc.io.netease.com/tutorial/13_Sel...

    Java架构师必看
  • Selenium自动化测试-3.元素定位(3)

    在上一篇:Selenium自动化测试-元素定位(2),我们介绍了xpath定位,xpath一般都能满足我们的定位需求。今天我们来介绍另一种——css定位神器。c...

    王大力测试进阶之路
  • Selenium自动化测试-3.元素定位(3)

    css定位是通过css选择器进行定位,我们需要了解css选择器的一些知识才能进行css定位,选择器基本语法如下:

    ITester软件测试小栈
  • python web自动化测试,入门篇

    本次实现自动化是用python语言进行实现,所以需要有一点python基础,其实python还是比较简单入门的,下面开始。

    py3study

扫码关注云+社区

领取腾讯云代金券