——————·今天距2020年77天·——————python
這是ITester軟件測試小棧第59次推文web

在上一篇:Selenium自動化測試-腳本錄製神器Katalon Recorder,咱們認識了一個實用的腳本錄製神器。到此爲止,已經學完了8種定位方式以及利用Firefox插件協助定位,學會定位,Selenium自動化就成功了一半。面試
But,咱們好像只是知道定位,定位後的操做並很少,今天就來系統的瞭解下鼠標鍵盤操做。瀏覽器
首先,回顧下咱們以前的簡單操做:微信
1.click() 點擊;
app2.clear() 清除;編輯器
3.send_keys() 輸入;測試
鼠標操做flex
以前定位的時候,用到了click點擊元素,selenium除了click模擬鼠標單擊操做外,還提供了雙擊、右擊、懸停、拖動等操做,使用這些要導入ActionChains類:url
from selenium.webdriver.common.action_chains import ActionChains
ActionChains提供的操做以下:
perform() 執行全部 ActionChains 中存儲的行爲;
context_click() 右擊;
double_click() 雙擊;
drag_and_drop() 拖拽到某個元素;
move_to_element() 鼠標懸停;
drag_and_drop_by_offset()拖拽到某個座標;

1、move_to_element()
以百度頁面的設置爲例,看看鼠標懸停怎麼操做。
鼠標移至設置,會出現下拉菜單,顯示4個選項,代碼以下:
整個流程是:定位到元素後,調用ActionChains()方法,將driver做爲參數傳入,鼠標懸停到元素上,perform()執行全部ActionChains中儲存的行爲。

2、double_click() 雙擊
以百度一下按鈕爲例,雙擊百度一下,代碼以下:
能夠看出,雙擊百度一下按鈕和以前click()單擊效果同樣,都能實現刷新頁面的做用。

3、context_click() 右擊
右擊典型的例子是雲盤,咱們以百度雲盤爲例:
選擇某個素材,而後右擊,代碼以下:
注意,上面的代碼並不能運行成功,只是演示右擊是怎麼操做的。經過link_text定位到須要右擊的元素上,而後執行右擊操做。

4、drag_and_drop()
drag_and_drop(source, target):將對象拖拽到目標地點;
source:源對象,須要移動的元素;
target:目標對象,將源對象拖放至的位置;
實現代碼以下:
上面的代碼只是講解drag_and_drop()的運行原理,具體的元素定位根據本身實戰須要進行修改。

5、drag_and_drop_by_offset()
drag_and_drop_by_offset(source, xoffset, yoffset),其中:
source:須要移動的元素;
xoffset: 將元素拖動到另外一個位置的x座標;
yoffset: 將元素拖動到另外一個位置的y座標;
咱們以滑塊爲例,咱們須要將滑塊移到最右的位置來解鎖:
怎麼實現呢,咱們經過定位元素,發現整個滑塊的長度爲298px。
那麼咱們只要往右滑動的距離超過298px,就能夠實現解鎖滑塊了,等不及了,用代碼來實現吧。
運行以後,自動解鎖滑塊成功:
鍵盤操做
selenium提供了一整套的模擬鍵盤操做,以前瞭解的send_keys()方法能夠模擬鍵盤輸入,模擬鍵盤操做需導入鍵盤模塊 :
from selenium.webdriver.common.keys import Keys
Keys()類提供了鍵盤幾乎全部按鍵的方法,常見的鍵盤操做:
以上常見的鍵盤操做基本知足咱們平常的操做,接下來咱們寫代碼看下鍵盤操做的效果:
經過上面的例子,你能夠掌握基本的鍵盤操做,更多的操做能夠本身多練習、實踐。
下一篇將分享獲取元素屬性,敬請期待~
最後是今天的分享:App自動化(基於appium+python)

ITester軟件測試小棧今日分享
分享內容
APP自動化(基於appium+Python)
領取方式
微信公衆號後臺回覆:Appium
有圖有真相
快來星標 置頂 關注我

想要獲取相關資料和軟件 ?
Q羣:701841415
本文分享自微信公衆號 - ITester軟件測試小棧(ITestingA)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。