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