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 準備測試環境,每個用...