1. 程式人生 > 實用技巧 >selenium webdriverio checkbox和radiobox checkbox的value和checked屬性

selenium webdriverio checkbox和radiobox checkbox的value和checked屬性

網頁上有時候遇到checkbox和radio,一般情況下這兩種都是input標籤,我們可以通過點選或者傳送空格的方式進行選中

當然,選中和判斷是否選中還有其他的方法,如模擬滑鼠點選、用js選中、修改標籤屬性選中;用js、jQuery判斷是否選中、用標籤屬性判斷是否選中,不過針對大部分情況,以上方法足夠用了。如果以上方法失效,可以考慮直接修改或獲取標籤屬性,或者可能是其他因素如等待時間、頁面遮擋等導致無法選中,可進行更多嘗試

一 、checked屬性

checked屬性代表的是當前checkbox是否被選中,如果選中返回true,未選中返回false。和value值無關。

<input class="fd-switch__input" type="checkbox" checked="">

checked只代表頁面重新整理時,checkbox處於選中狀態。checked的屬性返回true;
此時,點選checkbox使其處於非選中狀態,html程式碼沒有變化(checked依然原始碼上)。但checked的屬性返回false;
html中出現checked字樣,代表刷後新選,和checked=“任意值”無關。哪怕checked=“false”,重新整理時,checkbox仍然是選中狀態。可以理解為checked之後的屬性值都是沒意義的。

$x('....//input')[0].checked

flag = $(..//input').isSelected();

  1. html中checked意味著頁面載入時,讓該checkbox元素的checked屬性為true,頁面顯示選中狀態。
  2. 在提交表單時判斷表單是否選中的標準是document.getElementById(“checkbox1”).checked返回true還是false。和html頁面內容無關。

二 、value屬性

<p><input type="checkbox" name="vehicle" id="checkbox1" /> I have a car</p>

alert(document.getElementById("checkbox1").value);

value的屬性代表checkbox提交給表單的值。

  1. value如果沒有設定,則預設value的值是“on”。如果設定,自然value就是設定的值。
  2. value的值和表單是否選中無關。無論表單是否選中,checkbox的值都是一樣的。