Selenium定位带输入框的下拉框

来源:互联网 发布:网络分层的理解 编辑:程序博客网 时间:2024/05/29 15:57

测试定位对象如下图,点击右侧向下按键,弹出下拉框列表,在输入框中输入字符可支持模糊查找。

刚开始我的测试思路是完全按照手工操作用例设计

1.点击向下按键

2.输入审核人名称

3.选中列表中匹配的审核人名称

首先借助selenium ide进行以上步骤的录制,结果发现ide压根就不会产生任何步骤,所以这种方法行不通。

然后使用火狐浏览器的firebug查看元素,分别获取了向下按键,输入框以及列表匹配元素的属性值,转换为自动化测试用例为:

1.driver.findElement(By.id("select2-drop-mask")).click();2.driver.findElement(By.id("s2id_autogen3_search")).sendKeys("test12");3.driver.findElement(By.xpath("//*[contains(text(),'test12')]")).click();
运行,总是提示找不到对象。

后面又分别换了定位元素的其他属性,以及定位方式,无果,仍然提示找不到对象。

最后实在没辙,使用firebug重新去看了下该下拉框的代码,发现其实这个下拉框的标签也是select

 

而之前定位过不带输入框的下拉框元素,如下图,这种下拉列表的标签也为select,可以使用new select成功定位,并且使用selenium ide也可以录制到相关步骤。

new Select(driver.findElement(By.id("id")).selectByVisibleText("已分配");

 

既然都使用的是同样的select标签,我就换了下思路,省去点击向下按键,输入审核人名称的操作步骤,直接对该select标签元素进行操作。

new Select(driver.findElement(By.id("executorId")).selectByVisibleText("test12");

再次运行,竟然成功了。

 

总结:设计自动化用例时,思路不要被手工操作步骤所限制,如果按照手工操作步骤设计的用例无法成功定位元素时,可结合查看操作元素的标签或属性,再据此选择合适的自动化用例。

6 0
原创粉丝点击