Selenium如何支持测试Windows application

简介:

很长一段时间大家都支持Selenium是只支持测试Web应用程序的。

纵观Selenium的成长历程,不难解释这个原因。Selenium开始的时候是作为一个Firefox中的插件出现的,而且做得是纯JS脚本的方式,目的就是一个老外测试的有点烦了,就写了一个js的脚本每天去run自己的测试项目。从这个点来看,老外真的很有才。。想想国内的同行有谁会想到做得有点烦了,去自己搞腾一个工具去做每天的工作。。。

后面Selenium做得挺不错的,老外也感觉自己乐不如大家同乐。。。于是就开源了Selenium,后面进一步的壮大了,反而让Selenium开花结果,产生了一个真正意义上的自动化的支持。先是java版本的,然后是其他语言版本的,像Ruby ,c#,python等等。。。感觉好强大啊。

而且Selenium就是针对QTP来干的。。。SeleniumHq,就是对着HP干的。。。看出来了吗?

可能慢慢的你还发现Selenium做点web的测试还是可以的,可能针对Windows的程序如何用它去测试呢?

还是强大的网友给出了答案。让Selenium支持Windows程序无缝连接。。。这里就是推荐使用AutoIt这个工具,关于如何使用你需要到网上搜索看看了。http://www.autoitscript.com/site/autoit/

下面是可以用的的AutoIt的API 函数。

  View Code

需要两个文件才能使用Autoit提供的外部操作API.

一个是jacob文件,这个是java操作DCOM的一个桥梁API工具;

一个是AutoitX3.dll文件;

 

下载了上面的两个文件,一个是在本地register所需要的autoit dll文件。

采用命令:regsvr32 autoitx3.dll 文件即可;

然后再java代码中如下调用即可:

  View Code

,之后你就能在你的java程序中调用Autoit的API即可。

如下:

复制代码
AutoItXUtils autoit=getAutoItX();   //得到Autoit的实体类
        autoit.winWait(title, text, 120);   //激活一个windows窗口,只需要指定窗口的标题和对应的可见文本,这里会等待窗口出现,如果在120秒内还是没有出现就返回false
        autoit.winActivate(title, text);  //激活窗口
        boolean clicked=autoit.controlClick(title, text, controlID); //点击一个控件,需要指定这个控件的windows id,还有控件所对应的title及其可见的text
复制代码

是不是很不错,可以的话,你可以尝试下去操作弄弄。

不过使用了AutoIt的话,你就不能使用Selenium的RemoteWebDriver的特性了,也就是分布式执行的相关操作了,因为所有的Autoit的脚本其实都是运行在本地的,所以如果你需要让Selenium继续可以在不同的机器上运行,你可能需要使用Jenkins操作了。


本文转自hcy's workbench博客园博客,原文链接:http://www.cnblogs.com/alterhu/p/3323835.html,如需转载请自行联系原作者。


目录
相关文章
|
3天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(三十九)-java+ selenium自动化测试-JavaScript的调用执行-上篇(详解教程)
【5月更文挑战第3天】本文介绍了如何在Web自动化测试中使用JavaScript执行器(JavascriptExecutor)来完成Selenium API无法处理的任务。首先,需要将WebDriver转换为JavascriptExecutor对象,然后通过executeScript方法执行JavaScript代码。示例用法包括设置JS代码字符串并调用executeScript。文章提供了两个实战场景:一是当时间插件限制输入时,用JS去除元素的readonly属性;二是处理需滚动才能显示的元素,利用JS滚动页面。还给出了一个滚动到底部的代码示例,并提供了详细步骤和解释。
27 10
|
5天前
|
iOS开发 MacOS Windows
|
11天前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
【4月更文挑战第28天】本文简要介绍了自动化测试的实战应用,通过一个在线问卷调查(<https://www.sojump.com/m/2792226.aspx/>)为例,展示了如何遍历并点击问卷中的选项。测试思路包括找到单选和多选按钮的共性以定位元素,然后使用for循环进行点击操作。代码设计方面,提供了Java+Selenium的示例代码,通过WebDriver实现自动答题。运行代码后,可以看到控制台输出和浏览器的相应动作。文章最后做了简单的小结,强调了本次实践是对之前单选多选操作的巩固。
23 0
|
13天前
|
Web App开发 IDE 测试技术
【专栏】Selenium 是一款广泛使用的自动化测试框架:深入理解 Selenium 的核心组件
【4月更文挑战第27天】Selenium 是一款广泛使用的自动化测试框架,核心组件包括 WebDriver(与浏览器交互的接口,支持多浏览器测试),IDE(可视化的测试脚本录制和编辑工具)和 Grid(分布式测试,实现多机器并行测试)。通过这些组件,开发者能高效、稳定地进行自动化测试,但需注意浏览器兼容性、脚本维护和性能问题。理解并掌握这些组件的使用,能提升测试效率和质量。
|
2天前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
【5月更文挑战第4天】本文介绍了如何使用JavaScriptExecutor在自动化测试中实现元素高亮显示。通过创建并执行JS代码,可以改变元素的样式,例如设置背景色和边框,以突出显示被操作的元素。文中提供了一个Java示例,展示了如何在Selenium中使用此方法,并附有代码截图和运行效果展示。该技术有助于跟踪和理解测试过程中的元素交互。
7 0
|
2天前
|
Web App开发 前端开发 JavaScript
自动化测试 selenium基础
自动化测试 selenium基础
11 2
|
4天前
|
JavaScript 前端开发 测试技术
《手把手教你》系列技巧篇(三十八)-java+ selenium自动化测试-日历时间控件-下篇(详解教程)
【5月更文挑战第2天】在自动化测试过程中,经常会遇到处理日期控件的点击问题。宏哥之前分享过一种方法,但如果输入框是`readonly`属性,这种方法就无法奏效了。不过,通过修改元素属性,依然可以实现自动化填写日期。首先,定位到日期输入框并移除`readonly`属性,然后使用`sendKeys`方法输入日期。这样,即使输入框设置了`readonly`,也能成功处理日期控件。
23 1
|
5天前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十七)-java+ selenium自动化测试-日历时间控件-上篇(详解教程)
【5月更文挑战第1天】该文介绍了使用Selenium自动化测试网页日历控件的方法。首先,文章提到在某些Web应用中,日历控件常用于选择日期并筛选数据。接着,它提供了两个实现思路:一是将日历视为文本输入框,直接输入日期;二是模拟用户交互,逐步选择日期。文中给出了JQueryUI网站的一个示例,并展示了对应的Java代码实现,包括点击日历、选择日期等操作。
21 0
|
10天前
|
敏捷开发 监控 测试技术
探索自动化测试工具Selenium Grid的高效集成策略
【4月更文挑战第30天】在现代Web应用的快速迭代和持续部署中,测试自动化已成为确保产品质量的关键。Selenium Grid作为一款支持多种浏览器和操作系统的测试工具,提供了并行执行测试用例的能力,极大地提升了测试效率。本文将深入探讨如何高效地将Selenium Grid集成到现有的测试框架中,以及实施过程中的最佳实践,帮助团队最大化测试覆盖率,同时降低资源消耗。
|
10天前
|
数据管理 测试技术
深入理解自动化测试框架:以Selenium为例
【4月更文挑战第30天】 随着软件开发的快速发展,自动化测试已经成为保证软件质量和提升开发效率的重要手段。本文将深入探讨自动化测试框架的核心概念,并以广泛应用的开源工具Selenium为例,解析其架构、原理及在实际项目中的运用。通过实例分析与性能评估,旨在为读者提供一套系统的自动化测试解决方案,并探讨其在复杂应用场景下的优化策略。