2016-07-28 4 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:インデックス:0、サイズ:0、 、java.util.ArrayList.rangeCheck(不明なソース)、 、java.util.ArrayList.get(不明なソース)、test.main (test.java:27)

+0

これはローカル接続のみが許可されているポート29374 にChromeDriver 2.20.353145(343b531d31eeb933ec778dbcf7081628a1396067)を開始しています...私は取得していますエラーです。スレッドで 例外 "メイン" java.lang.IndexOutOfBoundsException:インデックス:0、サイズ:0 java.util.ArrayList.rangeCheck(不明なソース)java.util.ArrayList.getで \t(不明なソース)で\t \t at test.main(test.java:27) – Drake

答えて

0

あなたが最初iframeが、その後の無線要素を見つけるために行くことに切り替える必要があるので、あなたのラジオボタンは、名前result1iframe内にある: -

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

あなたの迅速な対応に感謝します。そしてこのコードは機能しますが、ラジオボタンをクリックしないということだけがあります。両方のisselectedはfalseを返しています。 – Drake

+0

@Drakeはい、残念ながら 'click()'はここでは動作しませんので、 'JavascriptExecutor'を使ってclick..tryを実行し、更新された答えを返します。それは動作します.. :) –

+0

これは今、魅力のように動作しますが、もしあなたがjavascriptexecutorを使用しなければならない理由について説明することができれば、私はそれも同様に検索しています。ありがとう、トン! – Drake

関連する問題