我在Webdriver中有一个场景,用于检查是否选中了一组复选框。我使用的定位器如下所示,以获得选中的复选框数:
List<WebElement> listOfColumnsSelected = driver.findElements(By.xpath("//div[@id='<ID_of_Div_under_which_check_boxes_are_placed>']//input[@type='checkbox'][@checked='checked']");
System.out.println(listOfColumnsSelected.size());这将为Firefox和IE9返回所选复选框的正确计数。但是在IE7中尝试时,它会像在IE7中一样返回null,复选框中不存在选中的属性。如何在IE7中获得相同的列表?如果有人知道这件事,请帮忙。
注:
通过迭代每个复选框,并检查是否使用isSelected()方法,我可以想到一种选择。但我不想用它,因为它消耗了很多时间。相反,使用driver.findElements()是一个快速的过程,当我们必须从一组100或更多的奇数复选框进行检查时。
谢谢,
希塔姆·贾纳
软件QA工程师
Mindfire解决方案
发布于 2014-02-05 12:05:35
我使用java脚本来做类似的事情。这是我的代码:
String selectedCB = "";
String jsScript = "var selchbox = [];"
+"var inpfields = document.getElementsByName('city[]');"
+"var nr_inpfields = inpfields.length;"
+"for(var i=0; i<nr_inpfields; i++) {"
+" if(inpfields[i].type == 'checkbox' && inpfields[i].checked == true) selchbox.push(inpfields[i].value);"
+" }"
+"var selected;"
+"selected = selchbox.join('#') + \"#\";"
+"return selected;";
JavascriptExecutor executor = (JavascriptExecutor)driver;
selectedCB = (String) executor.executeScript(jsScript);
String[] selectedB = selectedCB.split("#");对于document.getElementsByName(‘city[]’)行中的复选框元素,您可以修改它。
https://stackoverflow.com/questions/21576538
复制相似问题