0
我運行約30腳本測試用例(每個測試用例是腳本)串聯並有通常包括故障:不能識別指定的元素,元素不存在。如何提高我的Selenium腳本的健壯性?
我已經加了很多不同的方法來等待元素出現。有時當它顯然存在時,我猜Selenium很難找到元素的ID?
我已經包括了幾個
do{
if(selenium.isElementPresent("id=resultTable_0_0"){
selenium.click("viewResultForm:refresh_button");
}
}while (!selenium.isElementPresent("id=resultTable_0_0"));
和
if(selenium.isElementPresent("id=resultTable_0_0"))
selenium.isVisible("id=resultTable_0_0");
和
if(selenium.isElementPresent("id=resultTable_0_0_1_to"))
selenium.click("resultTable_0_0_1_to");
總是檢查元素是否做某件事之前甚至存在。這可能會對性能產生巨大的影響,但現在我只想讓我的腳本運行無錯誤,完全健壯。我有這樣一段代碼:
do{
if(selenium.isElementPresent("id=resultTable_0_0")){
selenium.click("viewResultForm:refresh_button");
}
}while (!selenium.isElementPresent("id=resultTable_0_0"));
if(selenium.isElementPresent("id=resultTable_0_0"))
selenium.isVisible("id=resultTable_0_0");
if(selenium.isElementPresent("id=viewResultForm:currentDetailViewType"))
selenium.isVisible("id=viewResultForm:currentDetailViewType");
if(selenium.isElementPresent("id=viewResultForm:currentSearchDateType"))
selenium.isVisible("id=viewResultForm:currentSearchDateType");
if(selenium.isElementPresent("id=viewResultForm:currentLegalEntity"))
selenium.isVisible("id=viewResultForm:currentLegalEntity");
if(selenium.isElementPresent("id=viewResultForm:currentRollupBy"))
selenium.isVisible("id=viewResultForm:currentRollupBy");
if(selenium.isElementPresent("id=viewResultForm:currentSecurityAltId"))
selenium.isVisible("id=viewResultForm:currentSecurityAltId");
if(selenium.isElementPresent("id=viewResultForm:currentSecurityAltIdType"))
selenium.isVisible("id=viewResultForm:currentSecurityAltIdType");
if(selenium.isElementPresent("id=viewResultForm:currentDepoViewType"))
selenium.isVisible("id=viewResultForm:currentDepoViewType");
if(selenium.isElementPresent("id=viewResultForm:currentBusinessDate"))
selenium.isVisible("id=viewResultForm:currentBusinessDate");
System.out.println("Success T13001");
selenium.stop();
即使這樣會報錯了!它不會經過selenium.stop和'假'的成功。我能做些什麼來構建我的腳本的健壯性?任何幫助,將不勝感激。
我使用硒2.20.0在IE 8
我覺得** ** selenium.waitforpagetoload是不可靠的。實際上,我用** ** selenium.waitforframetoload因爲它只是在重新加載指定的我** selenium.click後()**事件的頁面的框架。 至於**的XPath **,似乎很不穩定,喜歡它的錯誤了更加頻繁。 – qwer1234