2014-02-05 17 views
0

我在Webdriver中有一個場景,用於檢查是否選中了存在的複選框組。我使用的是定位類似於下面的東西拿到選中複選框(S)的數量:Selenium WebDriver:驗證是否選中了複選框或不使用JavaScript Executor

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中嘗試時,它將返回null和IE7一樣,檢查框中存在沒有檢查屬性。如何在IE7中獲得相同的列表?如果有人知道這一點,請幫助。

注:
我可以通過每個迭代認爲一個替代的和每複選框並檢查是否選擇或不使用isSelected()方法。但不想使用它,因爲它消耗了很多時間。相反,使用driver.findElements()是一個快速過程,因爲我們必須從一組100個以上的複選框中進行檢查。

感謝,
Sitam賈納
軟件測試工程師
Mindfire Solutions

回答

2

我用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(「城市[]」);

+0

謝謝@Husam。你的一段代碼爲我工作:) –

+0

高興得到了幫助:) – Husam

相關問題