在點擊增加按鈕後纔出現的下拉框中選擇內容

背景

    在自動化頁面測試過程中會遇到一種場景,有一個表格,點擊增加按鈕後下方會出現一行內容,並且這一行有選擇框,而你還必須進行選擇,就像下圖所示:

這個第5行的3列全都是選擇框,還都必須進行選擇,節點可以用來定位的元素很少,id和name還都是有隨機值在裏面,遇到這種情況想要在裏面選擇內容就需要一定的技巧,下面介紹一種方法。

方法

    首先看一下這個選擇框的節點分佈情況:

    圖中最底層的input即爲所需定位的節點,節點可供定位的上層節點均無可靠的id及name屬性,可供定位的爲//div[@class='datagrid-view2']節點,新增的行爲這個div節點下的第五個tr,需要的input節點是這個tr下較深的一個節點。

    這個選擇框是一個input節點,並不是傳統的select節點,所以就無法使用select相關的方法來進行選擇,不過robotframework中可以使用jquery選擇器來進行定位及選擇,就提供了另外的一條思路。

    在jquery中對於在input的這種選擇框中選擇內容,就要用到.combobox('select','')方法,也就是先定位到靠上一點的input節點,然後再使用.combobox('select','')方法即可,select的內容則爲所需節點的value的值。在本例中要選擇“權重組一”則值即爲group1。其他選擇值的value是什麼則點開下拉框後審查該選項的元素即可看到。

    而對於使用jquery定位到需要定位的input節點就需要依賴圖中該節點及向上幾個節點的class值了,可以看出,這幾個class值都是比較特殊且唯一的,剛好可以用來進行定位。那麼最終的jquery語句即爲:$('.datagrid-view2').find('tr[class*=datagrid-row-selected] td[field="paramname"]').find('input[class*="combobox-f"]').combobox('select','group1')

    在robotframework中可寫爲:

在這個語句中用到了一個語法tr[class*=datagrid-row-selected],表示節點的class屬性中包含datagrid-row-selected的tr節點,與其類似的還有:$("tr[class^='code']");//class屬性以code開始的tr標籤、$("tr[class$='code']");//class屬性以code結束的tr標籤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章