selenium中錄製拖拽動作

今天工作中遇到了selenium中錄製拖拽動作需求:在同一個頁面上,將一個table中的元素拖拽到另外一個table中。

通過查看幫助文檔是使用dragAndDrop或類似的命令。根據使用方法dragAndDrop(locator, movementsString),寫入下面的腳本:

<tr>
<td>dragAndDropToObject</td>
<td>//div/div/div/table/tbody/tr[2]/td/div</td>
<td>+652,+638</td>
</tr>

運行後,命令運行通過但是並沒有實現拖拽動作。從網上百度後,發現好多網友說dragAndDrop命令不太好用,可以通過鼠標事件模擬拖拽。因此借鑑過來,寫入命令如下:

<tr>
<td>mouseDownAt</td>
<td>//div/div/div/table/tbody/tr[2]/td/div</td>
<td>+394,+156</td>
</tr>
<tr>
<td>mouseMove</td>
<td>//div/div/div/table/tbody/tr[2]/td/div</td>
<td></td>
</tr>
<tr>
<td>mouseUpAt</td>
<td>//td[2]/div</td>
<td>+652,+638</td>
</tr>

運行後實現了拖拽動作。具體的mouseDownAt、mouseMove、mouseUpAt命令可以查看selenium幫助文檔。有其它網友是通過mouseDownAt、mouseMoveAt、mouseUpAt命令實現的,感覺思想差不多吧,只有能實現效果就可以。

順便說一下,由於mouseDownAt、mouseMoveAt、mouseUpAt命令的第二個參數都是座標,那麼獲得元素的具體座標也很關鍵。之前爲如何查看頁面元素座標糾結,後來同事說有的截圖軟件可以查看,突然想起以前HyperSnap截圖軟件是可以顯示座標的。於是乎下載安裝,座標問題迎刃而解。

接下來將繼續學習dragAndDrop命令,如果大家有使用成功的希望分享下。

發佈了52 篇原創文章 · 獲贊 24 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章