1. 程式人生 > >HTML的checkbox多選框---按條件選擇

HTML的checkbox多選框---按條件選擇


如圖,當一個頁面上有多個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