2016-08-17 17 views
1

Selenium WebdriverまたはJavascriptを使用してチェックボックスの状態をチェックしようとしていますが、まだ多くの研究を行っていますが、まだそれを行うことはできません。「チェック済み」属性がない場合、チェックボックスの状態をチェックする方法は?

私の問題はです:チェックボックスは、「確認」はありませんattrubute:私は、チェックボックスがチェックされているかどうかを検出するために、次の文字列を使用して定期的に通常のチェックボックスについては

<input type="checkbox" name="site[new_sign_up]" id="site_new_sign_up" value="1"> 

if (checkbox.GetAttribute("checked") != null && checkbox.GetAttribute("checked").Equals("true")) 

私はそれがJSで行うことができる知っている:

$get("isAgeSelected").checked == true 

しかし、私のチェックボックスは "チェックされた"プロパティを持っていないので、私はそれを行うことはできません。

セレンを使用している場合、要素の「選択済み」プロパティをチェックすると、チェックボックス状態の真実がわかりません。

どうすればよいですか?ありがとうございます。

+0

jQueryを使用していますか? – Chax

+0

'checkbox.GetAttribute(" checked ")!= null'それ以外のものをチェックする必要があると思います。 – Satpal

+1

' checkbox.checked'をネイティブJSとし、checked属性に依存しません。 – chiliNUT

答えて

3

DOM APIは関係なく、彼らはchecked属性かどうかを持っている(あるいは、彼らがチェックインできない場合であっても、すなわちテキスト要素)

場合の、全ての入力タイプにcheckedプロパティを提供

あなたははないはずは、チェックされた属性が存在しているため、チェックボックスがオンになっているかどうかを判断できません。あなたは私たちは、あなたがこれを使って、チェックボックスをチェックし、オフにすることができ、コード

<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
$('#site_new_sign_up').click(function(){ 
    if($('#site_new_sign_up').prop('checked')) { 
     console.log('Checked'); 
    } else { 
     console.log('Not Checked'); 
    } 
}) 
}); 
</script> 

<body> 
    <input type="checkbox" name="site[new_sign_up]" id="site_new_sign_up" value="1"> 
</body> 
</html> 
+0

ありがとう!これはうまくいく。 –

+0

@Adman、これにIWebDriver要素を使用する必要がある場合、対処する方法が分かりませんか?だから私はそのCssSelectorを知らないので、私はJSの "getElementById"メソッドを使用することはできません。 –

+1

@Adam、彼は 'checked'属性に頼っていません。 'checkbox.GetAttribute(" checked ")'メソッドは 'checked'プロパティが存在すればそれを返し、存在しなければ属性を返します。 –

-1

コード。

(checkBox1.getAttributeは() "にチェック" = nullを!)場合//

checkBox1.click()チェックした場合、 //チェックを外す

0

の.prop使用する必要がありますjqueryので

var x = document.createElement('input'); 
console.log(x.checked); //false 
x.type = 'checkbox'; 
console.log(x.checked); //false 
x.checked = true; 
console.log(x.checked); //true 
console.log(x); //<input type="checkbox"> - see? no checked attribute, yet it is still checked 
0

の下に使用してjsの中で達成することができます代わりに属性

$('input').prop('checked') //true-false meaning the checkbox is checked or not 
関連する問題