Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码

这篇具有很好参考价值的文章主要介绍了Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hello Selenium 示例

之前我们在专栏的第一篇文章中演示了使用使用Selenium进行百度搜索的Hello world示例。
Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

代码不复杂非常简单:

public static void main(String[] args) {
        WebDriver driver = null;
        try {
            // 设置Chrome驱动的路径
//            System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\webdriver\\chromedriver-122\\chromedriver.exe");
            // 设置Chrome驱动程序版本
            WebDriverManager.chromedriver().setup();
            // 创建WebDriver对象
            driver = new ChromeDriver();
            // 打开百度网站
            driver.get("https://www.baidu.com");
            // 找到搜索输入框
            WebElement searchBox = driver.findElement(By.name("wd"));
            // 在搜索输入框中输入关键字
            searchBox.sendKeys("Hello World");
            // 提交搜索表单
            searchBox.submit();
            // 输出页面标题
            System.out.println("Page title is: " + driver.getTitle());
        } finally {
            // 关闭浏览器
            if(driver != null){
                driver.quit();
            }
        }
    }

但是对不懂HTML、CSS和Selenium API的同学,可能要编写一个完整的可运行的Selenium程序还是有一点点难度。

熟悉CSS和花了一点的时间看了我后续Selenium 系列教程的除外哈。

那么,有没有那种傻瓜式的开发Selenium的工具呢?
就像Visual Studio 可视化开发MFC程序一样,可视化拖拽开发

Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

幸运的是,还真有!这就是Selenium大家族提供的Selenium IDE

什么是Selenium IDE

我们通常说的用来做自动化测试或爬虫的Selenium,其实不是一个单独的工具。

有点像 Spring 是一整套工具框架一样。

Selenium不仅仅是一个工具,而是一套软件,每个软件都有不同的方法来支持自动化测试。它由四个主要部分组成,包括:

  1. Selenium IDE:就是我们今天介绍的部分
  2. Selenium RC:允许测试人员用任何支持的编程语言编写自动化的web应用程序UI测试,注意已被Selenium正式弃用。
  3. WebDriver:前面我们已经简单介绍过了。
  4. Selenium Grid:也是Selenium Suite的一个重要组件,它允许我们在不同的机器上针对不同的浏览器并行运行测试。简而言之,我们可以在运行不同浏览器和操作系统的不同机器上同时运行我们的测试。后续我们会介绍。
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

今天我们着重介绍Selenium IDE。
Selenium IDE (集成开发环境)是 Selenium 套件下的开源 web 自动化测试工具。不像 Selenium WebDriver 和 Selenium RC,它不需要任何编程逻辑来编写它的测试脚本,而是可以简单地记录与浏览器的交互来创建测试用例。随后,可以使用回放选项来重新运行测试用例

Selenium IDE 不是个单独的应用程序,而是作为 Firefox 和 Chrome 插件使用,这意味着我们不能在Firefox和Chrome以外的浏览器上使用。

记录的测试脚本也可以导出为编程语言,如c#、Java、Ruby或Python。
Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

Selenium IDE安装

我们演示在Chrome中的安装

  1. 打开Chrome应用商城
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具
  2. 在商场中搜索Selenium IDE
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具
  3. 添加扩展程序
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具
  4. 右上角就点击打开Selenium IDE
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具
  5. 打开了Selenium IDE的窗口
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具
    这样我们就安装成功了

使用 Selenium IDE 录制脚本

接下来,我们使用Selenium IDE 录制一个百度搜索的例子。

  1. 打开Selenium IDE
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

  2. 点击在新项目中记录新测试
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

  3. 为项目命名
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

  4. 输入我们要访问的URL
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

  5. 点击开始录制,Chrome浏览器打开了一个新的窗口,进入了百度首页

  6. 输入Hello World
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

  7. 点击第一个展示的百度百科
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

  8. 点击Selenium IDE右上角的红色终止按钮
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

  9. 保存这个测试用例
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

  10. 可以看到Command中把我们在录制期间的所有操作都记录下来了
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

  11. 保存项目
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

使用 Selenium IDE 回放脚本

前面我们录制了脚本,我们可以打开项目,回放之前的操作。

  1. 打开Selenium IDE插件
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

  2. 打开一个存在的项目,也就是我们前面保存的工程
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

  3. 点击按钮运行当前测试
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

  4. 可以看到之前录制的所有操作都被自动执行了

    • 新打开了一个浏览器窗口
    • 打开百度首页
    • 搜索框输入Hello World
    • 点击搜索按钮,进入结果页面
    • 点击第一个百度百科词条
    • 进入百度百科页面

就是这么简单,所有都是自动完成的!
Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具

使用 Selenium IDE 转换成 Java 代码

再来一点更强大的,把录制的工程转换成 Java 源码。

  1. 打开前面的工程
  2. 在测试用例上点击设置图标
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具
  3. 选择导出
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具
  4. 选择导出为Java Junit
    Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码,Selenium 从入门到精通,selenium,自动化,java,测试工具
  5. 于是我们得到了Java源码
// Generated by Selenium IDE
import org.junit.Test;
import org.junit.Before;
import org.junit.After;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.core.IsNot.not;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Alert;
import org.openqa.selenium.Keys;
import java.util.*;
import java.net.MalformedURLException;
import java.net.URL;
public class HelloideTest {
  private WebDriver driver;
  private Map<String, Object> vars;
  JavascriptExecutor js;
  @Before
  public void setUp() {
    driver = new ChromeDriver();
    js = (JavascriptExecutor) driver;
    vars = new HashMap<String, Object>();
  }
  @After
  public void tearDown() {
    driver.quit();
  }
  public String waitForWindow(int timeout) {
    try {
      Thread.sleep(timeout);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
    Set<String> whNow = driver.getWindowHandles();
    Set<String> whThen = (Set<String>) vars.get("window_handles");
    if (whNow.size() > whThen.size()) {
      whNow.removeAll(whThen);
    }
    return whNow.iterator().next();
  }
  @Test
  public void helloide() {
    driver.get("https://www.baidu.com/");
    driver.manage().window().setSize(new Dimension(1127, 652));
    driver.findElement(By.id("kw")).click();
    driver.findElement(By.id("kw")).sendKeys("Hello world");
    driver.findElement(By.id("kw")).sendKeys(Keys.ENTER);
    vars.put("window_handles", driver.getWindowHandles());
    driver.findElement(By.cssSelector(".\\_aladdin_zc167_1 > .t span > span")).click();
    vars.put("win2836", waitForWindow(2000));
    driver.switchTo().window(vars.get("win2836").toString());
  }
}
  1. 把上面的代码复制到IDEA中去
  2. 引入相关的依赖
<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.13.2</version>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>org.seleniumhq.selenium</groupId>
	<artifactId>selenium-java</artifactId>
	<version>3.141.59</version>
</dependency>
  1. 自动生成的代码,还需要加入一行,配置 webdriver。
@Before
public void setUp() {
    System.setProperty("webdriver.chrome.driver", "C:\\Softwares\\webdriver\\chromedriver-122\\chromedriver.exe");

    driver = new ChromeDriver();
    js = (JavascriptExecutor) driver;
    vars = new HashMap<String, Object>();
}
  1. 运行测试类
    我们可以看到,自动打开了浏览器窗口,操作和我们录制和回放一模一样!

总结

到这里我们成功演示了Selenium 导出Java代码。观察一下自动生成的最核心的代码,和我们在Hello World示例中的代码没什么区别。

不过,如果再负责的需求场景下,比如解析页面拿到特定的元素内容,或者动态的交互,我们还是需要调用Selenium WebDriver 提供的API来实现!

接下来的章节,我们会重点学习这些API。关注我的 CSDN Postnull的Selenium 专栏,和我一起系统学习Selenium 自动化实现更多有趣的功能。文章来源地址https://www.toymoban.com/news/detail-842513.html

到了这里,关于Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通过Appium Desktop实现录制功能并导出自动化脚本

    1、我们进入下面这个界面  图中红色标记1为 “ top by coordinates ” 按钮, 这是一种通过坐标定位元素的方式。  图中红色标记2为 “ Start Recording ” 按钮, 选中表示处理录制状态。   2、点击“top by coordinates” 按钮,再点击 “Start Recording” 按钮,我们就可以在左则的 App 界

    2024年02月08日
    浏览(44)
  • Selenium自动化测试之Selenium IDE

    学习路线指引(点击解锁) 知识定位 人群定位 🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量

    2024年02月10日
    浏览(145)
  • selenium IDE自动化测试脚本的实现

    Selenium IDE   是一个简单的录制回放工具,它可以录制你在浏览器上的操作,回放脚本时,它可以重现录制的动作,就好像你又操作了一遍一样。  selenium IDE是个浏览器插件,你需要在浏览器上安装该插件才能使用。 1.下载chrome或者firefox浏览器的插件。 下载路径:Selenium IDE

    2024年02月03日
    浏览(58)
  • 用selenium IDE手工编写自动化测试脚本

    目录 一、打开selenium IDE插件  二、输入脚本 1.元素定位的验证  console验证Xpath定位 2.元素定位的验证   console验证css定位 selenium IDE属于玩具型自动化测试脚本编写工具,它简单、易上手,对于web自动化测试入门来说,是个非常不错的选择。 使用seleniium IDE插件录制脚本非常容

    2023年04月27日
    浏览(49)
  • 【自动化测试】Selenium IDE脚本编辑与操作

    之前,我们录制脚本时是录制鼠标和键盘的所有在浏览器的操作,那么脚本会出现多余的步骤,有时候我们需要手动填写脚本或修改脚本,所以我们有必要对selenium IDE脚本编辑与操作有所了解;(采用录制的方式很容易记录出多余的操作) Selenium IDE脚本编辑与操作 【了解】

    2024年02月15日
    浏览(49)
  • 使用 Selenium IDE 上手 web 自动化测试

    安装 Selenium IDE 是以浏览器插件的形式使用的,主要包含 FireFox 和 Chrome 两种。安装方式分为: 在线安装:下载对应的浏览器插件(chrome)。 本地安装:把 .zip 压缩包拖到浏览器的扩展页面。 开始页面 在浏览器的插件栏点击 Selenium IDE 图标进入开始页面 Record 录制一个测试用例

    2024年01月19日
    浏览(53)
  • 浏览器自动化利器Selenium IDE使用指南

    Selenium 是一个浏览器自动化框架,专门为 W3C WebDriver 规范提供了一个与所有主要的 web 浏览器兼容的平台和语言中立的编码接口。github 地址:https://github.com/SeleniumHQ/selenium Selenium IDE 是作为 Selenium 在浏览器 Firefox 和 Chrome 的插件,用于记录、重放测试脚本,并且脚本也可以导出

    2024年02月03日
    浏览(94)
  • 微软出品自动化神器【Playwright+Java】系列(一) 之 环境搭建及脚本录制

    半年前,偶然在视频号刷到某机构正在直播讲解 Playwright 框架的使用,就看了一会,感觉还不错,便被种草,就想着自己有时间也可以自己学一下,这一想着就半年多过去了。 读到这,你可能就去百度这东西到底是干啥用的? 细心的同学,可能会发现,关于 Playwright 基于

    2024年02月05日
    浏览(46)
  • 07 流量回放实现自动化回归测试

    在本模块的前四讲里,我向你介绍了可以直接落地的、能够支撑百万并发的读服务的系统架构,包含懒加载缓存、全量缓存,以及数据同步等方案的技术细节。 基于上述方案及细节,你可以直接对你所负责的读服务进行架构升级,将性能进一步提升。在升级系统架构时,有一

    2024年04月26日
    浏览(33)
  • 【自动化测试】Java+Selenium自动化测试环境搭建

    本主要介绍以Java为基础,搭建Selenium自动化测试环境,并且实现代码编写的过程。 1.Selenium介绍 Selenium 1.0 包含 core、IDE、RC、grid 四部分,selenium 2.0 则是在两位大牛偶遇相互沟通决定把面向对象结构化(OOPP)和便于编写代码的各自思想予以整合后形成的新工具,也就是我们所

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包