appium學習總結

2021-10-03 07:31:35 字數 2703 閱讀 1875

driver常用方法及注意事項

常用方法:

driver.findelement(by.name(""));

driver.findelementbyid(「id」);

driver.findelementbyname(「text」);

driver.findelementbyxpath("//*[@name=『62』]");

2) 注意事項:

使用driver.sendkeys(string str)向文字框輸入內容前,最好先element.click( )一下,否則某些情況下,輸入的內容會請不掉,文字框提示的內容也會在 輸入的文字前顯示出來。sendkey方法在傳送資料之前會清空一下文字框,一般不需要clear,如前面的情況clear後仍是存在的,click後正常

等待頁面載入策略:

顯性等待:呼叫selenium的方法, 需要新增webdriver.support引用

顯性等待是指在**進行下一步操作之前等待某乙個條件的發生。最不好的情況是使用thread.sleep()去設定一段確認的時間去等待。但為什麼說最不好呢?因為乙個元素的載入時間有長有短,你在設定sleep的時間之前要自己把握長短,太短容易超時,太長浪費時間。selenium webdriver提供了一些方法幫助我們等待正好需要等待的時間

webdriverwait wait = new webdriverwait(driver, timespan.fromseconds(10));

element = wait.until((d) =>

);

隱性等待:設定時間不易過長,設定為500或1000即可

隱性等待是指當要查詢元素,而這個元素沒有馬上出現時,告訴webdriver查詢dom一定時間。預設值是0,但是設定之後,這個時間將在webdriver物件例項整個生命週期都起作用。

driver.manage().timeouts().implicitlywait(timespan.fromseconds(1));

4. drive.keyevent(int )的使用: 可使用keyevent傳送鍵盤資料,比如退格,enter鍵等

driver.keyevent(3); //keycode_home 按鍵home 3

driver.keyevent(26); //keycode_power 電源鍵 26

driver.keyevent(67); //keycode_del 退格鍵 67

driver.keyevent(66); //keycode_enter 回車鍵

driver.keyevent(122); //keycode_move_home 游標移動到開始

driver.keyevent(123); //keycode_move_end 游標移動到末尾

5. 座標操作

為防止不同手機解析度不同帶來的影響,要避免使用固定的座標,可以用以下方式獲取元素的座標

double screen_x = driver.manage().window.size.width;//獲取手機螢幕寬度

double screen_y = driver.manage().window.size.height;//獲取手機螢幕高度

double startx = element.location.x; //獲取元素的起點座標,即元素最左上角點的橫座標

double starty = element.location.y; //獲取元素的起點座標,即元素最左上角點的縱座標

double elementwidth = element.size.width; //獲取元素的寬度

double elementhight = element.size.height; //獲取元素的寬度

在封裝「滑動」、「 touchaction」等操作時可以用以上方法來獲取座標進行操作。

示例:分裝兩個元素之間的滑動

iwebelement elmenta = null;

iwebelement elmentb = null;

int startx = 0, starty = 0, endx = 0, endy = 0;

int duration=0,time=0;

/// /// 從元素a的位置滑動到元素b的位置

///

/// 元素a的名稱

/// 元素b的名稱

/// 滑動持續時間

/// 滑動次數

public void swipeatob(string a, string b,string sduration,string stime)

}

注意:element.loaction和element.size,每次獲取時都會重新去手機裡獲取,為節省時間如果有獲取相同值的,建議儲存成變數。

取消重新安裝unlock和setting

登出如下**:

function (cb) .bind(this),

this.wakeup.bind(this),

this.unlock.bind(this),

this.getdatadir.bind(this),

this.setupcompressedlayouthierarchy.bind(this),

this.initautowebview.bind(this),

this.setactualcapabilities.bind(this)

], function (err) {

Appium學習筆記 1 appium配置 起步

1.手機唯一id,通過命令adb devices來找,需要提前連線真機或者模擬機 2.手機版本號 4.1.1 檢視手機設定中的 關於 版本號 3.測試的裝置型別 android ios 7.編寫 冷啟動與熱啟動概念 adb logcat grep start mac adb logcat finds...

Appium學習 關於Inspector

不過我在使用的時候遇到了這麼乙個問題 could not start a new session 有問題當然是找萬能的google。不過在搜的過程中,雖然有很多人遇到類似的問題,不過基本上都是埠沒有配置對。基本上找不到可以解決問題的方案。最後沒辦法,只能自己硬著頭皮去看日誌了。日誌很長,我就不全部貼...

appium 學習筆記(六)

用htmltestrunner匯出測試報告 fromwebdriver importtime importadbbase importunittest importhtmltestrunnercn class 開心糧票 classmethod defsetupclass cls 準備測試環境,每個用...