🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 涉及到JS组件的测试案例 > 在当前的软件开发中,web页面会经常使用一些JS组件,而这些组件由于是动态生成的,用一般的脚本测试会导致测试用例报错,所以Selenium中会提供一些特殊的脚本来处理这些问题。 > 此文档用于描述Selenium如何处理某些特殊场景。 ## 案例二:下拉组件操作 下拉组件是一种模拟提示框的JS组件,常用的有数据表格和可定制下拉列表等。 本案例以客户归属区域为例,操作界面如下: 1. 表单页面呈现 ![](https://box.kancloud.cn/2016-08-20_57b7ba4fe608d.png) 2. 单击文本框 ![](https://box.kancloud.cn/2016-08-20_57b7ba500a99d.png) 3. 选择相应内容 ![](https://box.kancloud.cn/2016-08-20_57b7ba5024d8e.png) 4. 组件回填字段信息 ![](https://box.kancloud.cn/2016-08-20_57b7ba503b4af.png) * * * * * ## 实现思路 首先可以看到点击文本框后,会弹出选择框;选择框的内容会自动初始化,所以我们需要等待框的内容初始化完成再进行选择;选择的事件是双击,所以这边用双击处理;双击完之后,回填相关的字段信息 * * * * * ## 用例脚本demo | 命令(Command) | 目标(Target) | 值(Value) | 脚本说明 | | -- | -- | -- | -- | | ... | ... | ... | ... | | click | id=AreaName | | 点击归属区域的文本框 | | waitForElementPresent | //tr[@id='row10']/td[3]/div | | 等待行数据加载完成 | | clickAt | //tr[@id='row10']/td[3]/div | | 单击选中行内容 | | doubleClickAt | //tr[@id='row10']/td[3]/div | | 双击行触发组件的选择事件 | | ... | ... | ... | ... | **在编写这个脚本的时候,有些内容还不是很确定:** 1. click和clickAt的区别; 2. 为什么组件选择需要先用clickAt点击一次再使用doubleClickAt双击才能生效; 3. 确认表格初始化完成使用的绝对元素。 以上问题,只能后续深入理解后才能来解释了。