Selenium webdriver 之select 控件封装,解决onchange问题

使用webdriver的时候,select 控件经常会绑定onchange 事件,在selenium2.09 之前click 方法对onchange 事件有bug,2.09 以后修复了,但是根据经验也遇到用selenium ui 下面的select的类去做select 操作,有时也可能不发触发onchange 事件,所以本人测试放弃不用,自己封装了几个好用的方法,在此分享,部分只要实现代码如下:

/**
* 获取选项列表
*
* @return
*/
public List<WebElement> getOptions() {
return this.findElements(By.tagName("option"));
}
/**
* 根据select的value来选择
*
* @param value
*/
public void setOptionByValue(String value) {
for (WebElement op : getOptions()) {
if (op.getAttribute("value").equals(value)) {
op.click();
return;
}
}
throw new NoSuchElementException(
"Cannot locate an element in Select-setOptionByValue ");
}
/**
* 根据显示的文本来选择
*
* @param text
*/
public void setOptionByText(String text) {
for (WebElement op : getOptions()) {
if (op.getText().equals(text)) {
op.click();
return;
}
}
throw new NoSuchElementException(
"Cannot locate an element in Select-setOptionByText ");
}

  

更多资料关注:www.kootest.com ;技术交流群:182526995

时间: 2024-10-21 08:14:47

Selenium webdriver 之select 控件封装,解决onchange问题的相关文章

Selenium webdriver 操作日历控件

一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 比如: 但是,有的日期控件是readonly的 比如12306的这个 <input id="train_date" class="inp-txt" type="text" value="2015-03-15" name="back_train_date" a

JavaScript封装一个实用的select控件

最近一直把精力放在项目上面,导致忽略的一些底层的东西.以前就一直觉得原有的select控件很丑,正好周末有时间,试着做了一个简单封装,实现了它的基本功能.我总结了一下,大概分为三个部分: 1.对显示样式的处理 2.对点击和hover事件的处理 3.change事件发送请求的处理 我们先看jsp的展示代码: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%&

IE6/7下Select控件Display属性无效解决办法

HTML的Select控件,C#的DropDownList服务器控件 设置父类型Display属性之后,在IE6/7上无效 直接将下段javascript脚本添加到页面中即可 <script type="text/javascript">     window.onload = function () {         if (document.getElementsByTagName) {             var s = document.getElements

AppCan技术分享:Select控件

Select组件是根据AppCan 布局框架对select标签封装的HTML5代码片段,开发者可以通过快速添加Select控件在界面中,配合适当的样式,达到预期UI效果. Select控件是由三个部分构成:(1) 文字:用于显示条目的内容.(2) 下拉列表.(3) 控件:是一个与整个下拉列表容器等高宽的透明控件.虽然我们看到的只是文字和列表,但事实上,在点击选择的时候,点的是select透明控件,我们是通过value值来获取用户选中的条目. Select控件依赖于appcan.js.appcan

IE6下div层被select控件遮住的问题解决方法

Select在IE6下是处于最顶层的,因此想要遮住它,设置zIndex属性是不行的,就需要一个优先级更高的元素,就是iframe,当把iframe嵌套在弹出div层中后,把iframe设置为不可见,但它使弹出的div能浮于select等一些元素之上,因此完美解决了此问题,如下是需要弹出的Div代码,星号内代码为添加的iframe: <div id="quest"> <!--*******************************iframe***********

模拟select控件&amp;&amp;显示单击的坐标&amp;&amp;用户按下键盘,显示keyCode

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

JQuery select控件的相关操作

本文转载于 http://www.cnblogs.com/zfc2201/archive/2012/09/06/2674312.html JQuery获取和设置Select选项方法汇总如下: 获取select 先看看下面代码: $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 var checkText=$("#select_id").find("option:s

js操作select控件大全(包含新增、修改、删除、选中、清空、判断存在等)

原文:js操作select控件大全(包含新增.修改.删除.选中.清空.判断存在等) js操作select控件大全(包含新增.修改.删除.选中.清空.判断存在等) js 代码// 1.判断select选项中 是否存在Value="paraValue"的Item        function jsSelectIsExitItem(objSelect, objItemValue) {            var isExit = false;            for (var i

HTML的select控件美化

CSS: .div-select { border: solid 1px #999; height: 40px; line-height: 40px; cursor: default; } .div-select-text { float: left; background-color: #fff; height: 100%; word-break: keep-all; overflow: hidden; cursor: default; } .div-select-text > div { p