首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium WebDriver :验证是否使用JavaScript执行器选中复选框

Selenium WebDriver :验证是否使用JavaScript执行器选中复选框
EN

Stack Overflow用户
提问于 2014-02-05 11:53:45
回答 1查看 1.5K关注 0票数 0

我在Webdriver中有一个场景,用于检查是否选中了一组复选框。我使用的定位器如下所示,以获得选中的复选框数:

代码语言:javascript
复制
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解决方案

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-05 12:05:35

我使用java脚本来做类似的事情。这是我的代码:

代码语言:javascript
复制
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[]’)行中的复选框元素,您可以修改它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21576538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档