HTML的checkbox多選框---按條件選擇
阿新 • • 發佈:2019-01-28
如圖,當一個頁面上有多個checkbox,有時候需要根據條件來選擇我們需要的checkbox。
上面假設我們需要挑選出符合條件的公司名稱,我們先獲得所有的公司名,get webelements 獲取元素列表,get text獲取文字,用一個for迴圈遍歷可獲得所有的公司名。
然後和我們的條件(這個條件就是讀取.txt中的資料,這個讀取的資料我們用列表來儲存)比較,如果符合要求,去勾選checkbox;所有我們還要去把所有的checkbox的定位元素拿到,但是,我們知道的,在robotframework中使用兩個for迴圈巢狀是比較不好弄得,不如selenium中可以直接使用python語言就可以搞定。這裡我們找到了一個關鍵字:list should not contain value,列表中不應該包含值,就是檢視列表中是否和數值匹配,再用一個關鍵字,run keyword and return status來返回執行語句的狀態,True or False.
這樣子,迴圈遍歷公司名字,符合條件的就勾選,不符合就不勾選,直到遍歷完頁面所有的公司名,為了保證頁面的元素可見性,在for迴圈中判斷一次就就滾動下螢幕。
我們設定兩個初始變數:${count},${頁面滾動值},${count}沒遍歷一次就加1,這個${count}傳給定位的checkbox作為元素列表索引取值。
大概思路就是這樣子,放個我做的案列:
@{webelements} get webelements jquery=ul.results_list_box>li>a ${黑名單公司} 返回讀取的列表內容 ${滑動頁面數值} set variable ${0} #設定頁面滾動值 ${count} set variable ${0} #設定計數(作為checkbo元素列表的取值索引) sleep 2 : FOR ${ele} IN @{webelements} #遍歷元素 \ ${頁面的公司名稱} get text ${ele} #獲取公司名 \ sleep 0.5 \ #該處需要加點延時,不然易返回none \ ${status} run keyword and return status list should not contain value ${黑名單公司} ${頁面的公司名稱} \ run keyword if '${status}'=='True' 點選元素 jquery=div#searchlist>ul>li>input:eq(${count}) \ 上下滾動 ${滑動頁面數值} \ ${count} evaluate ${count}+1 \ ${滑動頁面數值} evaluate ${滑動頁面數值}+40