1.開始結(jié)束時間只支持控件選擇,不支持填寫,怎么辦?
如下圖:
解決方案:
用javaScipt把開始結(jié)束時間的reaonly屬性去除,然后再輸入,舉例如下
/**
* 輸入開始日期
*
* @param startDate
*/
public void inputStartDate(String startDate) {
String startjs = "document.getElementById('startDate').removeAttribute('readonly');";
((JavascriptExecutor) webdriver).executeScript(startjs);
webdriver.typeById("startDate", startDate);
}
2.因為新需求的加入,導(dǎo)致頁面元素路徑變更,原本好好的自動化測試用例執(zhí)行失敗
解決方案:
定位元素時,盡可能用id,name等定位,盡可能不用xpath定位。
如果你所測的系統(tǒng)很多元素id或name等等不甚至沒有,導(dǎo)致必須要用xpath定位,那么可以和開發(fā)同學(xué)協(xié)商。讓他們以后開發(fā)新代碼時盡可能給元素加上id或name這些屬性,并取名。
用id和name定位還有些好處是:1.可以讓你的代碼可讀性變強,如果在頁面源代碼中的ID或name屬性被友好命名的話。2.xpath定位需要更長的時間來處理,因為瀏覽器必須運行它的XPath處理器。
3.如何判斷瀏覽器是否加載完畢
如果是簡簡單單的等一段時間,這不是一個很好的解決方法,一方面浪費了時間,另一方面,我們也無法知道應(yīng)該等多久,導(dǎo)致我們的測試程序不夠穩(wěn)定。
我常用的一個方法是判斷某個元素是否已加載,當(dāng)然這個的前提是你的頁面沒有使用ajax