再谈Selenium测试之精要.docx
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
在进行selenium录制的时候,会出现一些ID是变得的。因此在经过和编程人员的协商后,决定在Ext Designer编写ExtJs的时候设置好ID。因此基本上所有发布的ExtJs源码是有固定的ID的。 经过反复的selenium录制和使用firefox的Firebugs插件的定位。得出以下结论。Ext Designer生成的ExtJs代码中的一些控件,其实是包含在一些table或者div里面的。因此更为精确的定位该控件可以使用Xpath来进行。 在进行Web应用自动化测试时,Selenium是一款广泛使用的工具,尤其在处理JavaScript驱动的页面如ExtJs时。本文主要探讨了在使用Selenium与Ext Designer相结合进行ExtJs测试时遇到的问题及解决方案。 当我们使用Selenium进行录制时,有时会发现元素的ID是动态变化的,这给定位和操作带来困难。为了解决这个问题,我们与开发团队协商,在Ext Designer中预先设定固定ID。这样做可以确保ExtJs源码中的元素拥有稳定的标识符,从而方便Selenium进行自动化测试。 利用Firefox的Firebug插件可以帮助我们更准确地定位页面元素。在Ext Designer生成的ExtJs代码中,某些控件可能嵌套在table或div容器内。在这种情况下,XPath成为一个强大的定位工具,它能够穿越复杂的DOM结构,精确地找到我们需要的元素。例如,可以通过`//table[@id='']`或`//input[@id='']`这样的XPath表达式来定位元素,并结合Selenium的`type()`、`select()`或`click()`方法进行操作。 在进行更复杂的操作时,Selenium的`runScript()`方法非常有用,它允许我们直接执行JavaScript代码来控制页面行为。文中给出了几个示例函数,如`selectComboRow()`用于选择组合框中的特定项,`typeTextField()`用于输入文本字段的值并触发失去焦点事件,以及`buttonClick()`用于模拟按钮点击。这些自定义函数极大地提高了代码的可读性和维护性。 对于ExtJs中的CheckboxSelectionModel,我们可以利用`selectComboRow()`方法,因为它可以模仿用户在下拉列表中选择选项的行为。这样,我们可以避免直接调用Selenium的`click()`方法,从而减少可能的定位错误。 在处理键盘事件时,Selenium提供了`keyDown()`和`keyPressNative()`等方法。例如,如果需要模拟用户在输入框中输入值后按下Enter键进行搜索,可以先将焦点移动到输入框,输入值,然后模拟按下“@”键(`\40`是ASCII码表示的'@'),稍作延迟,最后使用`keyPressNative()`模拟Enter键的按下。`Thread.sleep()`函数用于设置等待时间,确保输入值有足够的时间被处理,否则可能会因为按键速度太快导致预期结果未出现。 本文深入探讨了在Selenium测试ExtJs应用时如何处理动态ID,如何利用XPath进行元素定位,以及如何通过自定义JavaScript脚本和键盘事件模拟用户交互。这些技巧对于提高Selenium测试的效率和准确性具有重要意义。在实际工作中,我们应该灵活运用这些方法,以应对各种复杂的Web应用测试场景。
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/release/download_crawler_static/4475376/bg1.jpg)
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- MK_LU2012-09-04还没怎么看,,。。。粗略浏览下,还不错吧
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 7
- 资源: 89
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- AI绘画工具介绍(文档)
- pandas-2.2.2-cp311-cp311-musllinux-1-1-aarch64.whl
- 小程序开发基础与简单示例.pdf
- matlab:读取图像+显示图像+显示图像的直方图+直方图均衡
- pandas-2.2.2-cp311-cp311-manylinux-2-17-x86-64.manylinux2014.whl
- 如何充分运用ansys的HELP
- pandas-2.2.2-cp311-cp311-musllinux-1-1-x86-64.whl
- C语言可变长数组(VLA)详解与应用
- android-studio-2024.1.1.12-windows-zip.zip.001
- 辰光PHP客服系统多商户全开源V3.1版+安装教程
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)