2016-07-28 55 views
1
driver.get("http://www.quackit.com/html/codes/html_radio_button.cfm"); 

List<WebElement> radio_button = driver.findElements(By.name("preferred_color")); 

System.out.println(radio_button.get(0).getAttribute("value")); 

System.out.println(radio_button.get(0).getAttribute("checked")); 

radio_button.get(0).click(); //check the radio button if it is unchecked 

System.out.println(radio_button.get(0).getAttribute("checked")); 

這是我得到的錯誤: -硒是不能識別的單選按鈕

開始端口29374 ChromeDriver 2.20.353145 (343b531d31eeb933ec778dbcf7081628a1396067)只有本地 連接被允許。線程「main」中的異常 java.lang.IndexOutOfBoundsException:Index:0,Size:0 at java.util.ArrayList.rangeCheck(Unknown Source)at java.util.ArrayList.get(Unknown Source)at test.main (test.java:27)

+0

這是我得到的錯誤...端口開始ChromeDriver 2.20.353145(343b531d31eeb933ec778dbcf7081628a1396067)29374個 只有本地連接被允許。 異常在線程 「主」 java.lang.IndexOutOfBoundsException:索引:0,大小:0 \t在java.util.ArrayList.rangeCheck(未知來源) \t在java.util.ArrayList.get(未知來源) \t在test.main(test.java:27) – Drake

回答

0

你的單選按鈕的iframe與名result1裏面,所以你需要切換這iframe第一,然後去尋找無線電元素: -

driver.switchTo().frame("result1"); 

的完整代碼: -

driver.get("http://www.quackit.com/html/codes/html_radio_button.cfm"); 

driver.switchTo().frame("result1"); 

List<WebElement> radio_buttons = driver.findElements(By.name("preferred_color")); 

System.out.println(radio_buttons.size()); 

if(radio_buttons.size() > 0) { 

     WebElement radio_button = radio_buttons.get(0); 

     System.out.println(radio_button.getAttribute("value")); 

     System.out.println(radio_button.isSelected()); 

     if(!radio_button.isSelected()) { 
      ((JavascriptExecutor)driver).executeScript("arguments[0].click()", radio_button); //check the radio button if it is unchecked 
     }  
     System.out.println(radio_button.isSelected()); 
} 

希望它能幫助.. :)

+0

感謝您的及時響應。而且這個代碼有效,但唯一的一點是它不會點擊給定的單選按鈕。所以被選中的都返回false。 – Drake

+0

@Drake是的,因爲我看到不幸''click()'在這裏不起作用,所以我通過使用'JavascriptExecutor'來爲你提供click..try和更新的答案。它會工作.. :) –

+0

這現在就像一個魅力,但如果你可以請解釋爲什麼你必須使用javascriptexecutor,我也使用谷歌搜索。萬分感謝! – Drake