使用 Flash 进行测试 Selenium 网络驱动程序

⚡ 智能摘要

使用 Flash 进行测试 Selenium WebDriver 会验证基于 Flash 的视频、游戏和动画是否正常运行。本资源解释了如何捕获嵌入式 SWF 对象、分配对象 ID 以及如何使用 WebDriver 自动播放。 Selenium IDE录制和FlashObjectWebDriver类用于可靠验证。

  • 📌 核心宗旨: Flash 测试验证嵌入式 SWF 媒体(视频、游戏和动画)是否按设计运行。
  • 🔎 定位挑战: XPath 无法访问 Flash 对象,因此专用的 FlashObjectWebDriver 对象通过分配的对象 ID 来定位它们。
  • 🎬 记录方法: Selenium IDE 会记录对 Flash 影片执行的操作,并使用绿色的“运行”按钮重放这些操作。
  • 💻 WebDriver 方法: FlashObjectWebDriver 类调用 Play、StopPlay 和 SetVariable 以编程方式控制 Flash。
  • ⚠️ 主要限制: Flash 已弃用;FlexMonkium 扩展了 Flash 的功能。 Selenium 当原生录制和播放失败时,IDE 会出错。

使用 Flash 进行测试 Selenium 网络驱动程序

什么是 Flash 测试?

Flash 测试是一种用于检查基于 Flash 的视频、游戏、电影等是否按预期运行的测试类型。换句话说,测试 Flash 的功能被称为 Flash 功能测试。 闪光测试。 Flash 是一款由 Macromedia(现已被 Adob​​e 收购)开发的流行软件。它用于开发游戏、应用程序、图形动画、电影等。 电话 游戏、程序等。

In Selenium 如果通用定位器找不到元素,则进行自动化 比如 id、class、name 等, 然后 XPath的 需要在网页上找到一个元素,以便对该元素执行操作。但在 Flash 测试中, XPath的 无法访问 Flash 对象。因此,任何应用程序都需要 Flashwebdriver 对象才能找到 Flash 对象。

闪光测试

在这里你将看到如何执行 flash 测试与验证 以及如何使用 Selenium.

Flash 测试的先决条件

开始之前,请先了解测试 Flash 应用程序的要求:

  1. Flash 应用程序。
  2. 支持的浏览器。
  3. Adobe Flash 播放器插件。

工具- 以下是在闪存测试中有用的测试工具。

  1. Selenium
  2. 肥皂用户界面
  3. TestComplete
  4. 测试工作室等

Selenium 是一款非常流行的 Web 测试工具。您可以创建跨平台、使用不同语言的测试框架。它是一款开源工具,可以从官方网站下载。它易于配置、使用和部署。

Flash 测试与其他元素有何不同

现在前提条件已经具备,了解 Flash 在测试期间的行为与标准 HTML 元素不同的原因会很有帮助。

  • 为什么闪光灯拍摄物体比较困难?如何解决这个问题?

Flash 是一项过时的技术。由于 Flash 对象与 HTML 不同,因此很难捕获它。此外,Flash 是一种嵌入式 SWF(小型 Web 格式)文件。在移动设备上访问 Flash 对象也很困难。

德韦洛ping Flash 比开发更难ping 从搜索引擎优化(SEO)的角度来看,HTML页面更合适,因为搜索引擎无法完全读取Flash内容。然而,诸如HTML5之类的先进技术已经出现,可以解决性能和安全等问题。

  • Flash应用程序通过哪些方式进行测试?

Flash 应用程序以两种方式测试:

  • 手动的 - 您可以通过手动执行测试用例来测试 Flash 对象,因为它简单易行。修复错误后,您可以确保 Flash 按照预期正常运行并提供签收。
  • 自动化– 你可以使用任何自动化工具编写脚本,例如 Selenium, SoapUI, TestComplete等等,然后执行脚本。
  • Flash 与其他元素的区别。

如上所述,Flash 与其他元素的主要区别在于,Flash 嵌入在 SWF 文件中,而其他元素嵌入在 HTML 文件中。因此,与 Flash 相比,HTML 更容易捕获。

如何获取 Flash 影片/Flash 应用的 Flash 对象 ID

了解 Flash 与 HTML 的区别之后,下一步就是通过对象 ID 定位 Flash 对象本身。

在任何网页中,`<object>` 标签用于嵌入多媒体内容(例如 Flash、ActiveX、视频等)。它表示“嵌入”到 HTML 文档中。此标签定义了一个容器,该容器嵌入在 HTML 文档中的 `<object/>` 或 `<embed/>` 标签内,用于显示交互式内容或外部应用程序。对象名称用于在网页上定位 Flash 对象。

例如,在下面的示例中,您可以看到 flash 影片是在 HTML 文档或文件中的“embed”标签中定义的。

计费示例:

/* Html page*/
<html>
<body marginwidth="0" marginheight="0">
<embed width="100%" height="100%" name="plugin" src="http://video/movie_play.swf" type="application/flash"/>
</body>
</html>

使用对象 ID 查找 Flash 元素。

您可以使用 Flash 属性(如对象 ID)来定位 Flash 对象。从而可以根据需要对其执行操作,如播放、停止等。

如前所述,Flash 对象无法使用 XPath 访问。因此,开发者若要对这些对象执行任何操作,都需要为其分配一个合适的对象 ID。

下图显示了分配给 Flash 的对象 ID“MyFlashMovie”:

Flash 影片/Flash 应用的 Flash 对象 ID

如何使用 Selenium IDE 录制

分配对象 ID 后,您可以直接通过 Flash 影片录制交互。 Selenium IDE。

您还可以使用以下方法自动执行 Flash Selenium IDE。

步骤1) 你需要打开 Flash 应用程序,然后 Selenium IDE界面如下图所示:

使用以下方式实现 Flash 自动化 Selenium IDE 录音

步骤2) 现在点击右侧的“录制红色按钮”,开始对 Flash 影片进行操作,然后您将看到如下所示的录制脚本:

使用以下方式实现 Flash 自动化 Selenium IDE 录音

录制完成后,如果用户想要执行脚本,可以点击下图所示的“绿色运行按钮”。 Selenium IDE会逐步执行脚本。

使用以下方式实现 Flash 自动化 Selenium IDE 录音

如何使用 Selenium 网络驱动程序

为了获得比录音更多的控制权, Selenium WebDriver 允许您以编程方式驱动 Flash 对象。

您还可以使用以下方法自动执行 Flash Selenium 通过 Flashwebdriver 对象调用 webdriver,然后调用方法来操作 Flash 对象。你需要这样做。 下载 flashwebdriver jar 文件:

步骤1) 下载完成后,按照下图所示,将 jar 文件添加到您的项目中。

添加 Flash jar 文件 Selenium 项目

步骤2) Flash jar 文件下有一个单独的 flashobjectwebdriver 类。请在您的 Selenium 脚本中实现 flashWebdriver “myFlashmovie”,如下图所示。

在 FlashWebDriver 中实现 Selenium 脚本

添加 webdriver 类“MyFlashMovie”后,即可访问 Flash 对象。

何时进行自动化闪存测试

通常情况下,当闪存对象不易访问时,需要自动执行闪存测试。这会导致测试中止,从而无法测试闪存对象。

创建用于 Flash 测试的 Selenium 脚本

综合以上步骤,这里提供一个完整的脚本,用于启动和控制…… Guru99 个演示 Flash 动画。

步骤1) 你使用“Guru99英寸Flash电影,用于测试Flash场景。

https://demo.guru99.com/test/flash-testing.html

Guru99 个演示 Flash 电影 Selenium 测试

步骤2) 在中编写脚本 Selenium 使用 Eclipse 打开并运行以下代码。执行以下代码后,将执行以下操作:

  • 打开 Firefox 浏览器,
  • 启动guru99 flash网站,
  • 播放 Flash 影片并
  • 然后停止电影。
import org.openqa.selenium.firefox.FirefoxDriver;
import Flash.FlashObjectWebDriver;
public class Flash {
    public static void main(String[] args) throws InterruptedException {
        // Open firefox browser
        FirefoxDriver driver = new FirefoxDriver();
        // Maximize browser
        driver.manage().window().maximize();
        // Under Flash jar file there is a separate FlashObjectWebDriver class
        FlashObjectWebDriver flashApp = new FlashObjectWebDriver(driver, "myFlashMovie");
        // Pass the URL of video
        driver.get("https://demo.guru99.com/test/flash-testing.html");
        Thread.sleep(5000);
        flashApp.callFlashObject("Play");
        Thread.sleep(5000);
        flashApp.callFlashObject("StopPlay");
        Thread.sleep(5000);
        flashApp.callFlashObject("SetVariable","/:message","Flash testing using selenium Webdriver");
        System.out.println(flashApp.callFlashObject("GetVariable","/:message"));
    }
}

步骤3) 执行上述脚本。

输出: 执行上述脚本后,Flash 动画开始播放和停止,如此往复。

Flash 测试中的挑战

  • 实现 Flash 应用的自动化是一项挑战。要实现 Flash 应用的自动化,您可以使用 FlexMonkium,它是一个 Flash 插件。 Selenium IDE。
  • 您在使用 Flex 应用程序启用录制/回放时可能会遇到问题。 Selenium-Flexmonkium 集成。解决方案是用户需要安装 Flexmonkium 并将其与系统集成。 Selenium 仔细安装IDE。正确安装后即可启用录制功能,从而实现Flash应用程序的自动化。

常见问题

Adobe 已于 2020 年 12 月 31 日正式停止对 Flash Player 的支持。由于大多数应用程序已迁移到 HTML5,Flash 测试现在主要适用于旧版系统。 Selenium 无需特殊 Flash 库即可实现自动化。

Flash 内容渲染在嵌入页面的已编译 SWF 对象中,而不是作为 HTML DOM 元素。由于 XPath 遍历的是 DOM,因此无法访问 Flash 内部控件,所以需要对象 ID 和 FlashObjectWebDriver。

FlexMonkium 是一个与以下系统集成的插件: Selenium 该集成开发环境 (IDE) 可支持 Flex 和 Flash 应用程序的录制和回放。正确安装后,测试人员可以捕获和回放原本无法访问的 Flash 对象上的操作。

基于人工智能的视觉测试工具通过图像和模式识别而非DOM来识别屏幕上的Flash元素。这使得团队能够验证传统定位器无法检测到的动画和交互。

是的。人工智能辅助工具会分析现有的 Flash 测试步骤,并建议等效的 HTML5 定位器和脚本。这可以加速向现代框架(例如 HTML5)的迁移。 Selenium WebDriver,同时减少人工返工。

总结一下这篇文章: