我使用JAVA和一些Selenium腳本在Eclipse IDE中創建測試用例。Selenium - Java在測試腳本中等待頁面加載失敗
我的問題是,有時候,連續運行的測試用例會在selenium.waitForPageToLoad(「30000」)方法中產生錯誤/失敗的測試。我做了一個解決方案,該方法將循環,直到滿足特定的條件,所以我來到這個代碼。但這不起作用。
這會發生什麼情況:運行Junit測試> @ Test1,2,3..n>頁面無法加載@ Test n>執行下一行代碼>在@Test n>中測試失敗,因爲Page未加載,因此下一個腳本無法完成(缺少頁面中所需的元素,因爲它沒有加載)。
這是什麼SUPPOSED發生:運行Junit測試> @ Test1,2,3..n>頁面不加載@ Test n>等待頁面加載,直到滿足特定條件(例如元素X已存在在執行下一行代碼>在測試中通過測試n
我需要一個解決方案,等待頁面加載,直到存在下一行腳本所需的元素。
此代碼不起作用。我非常需要你的幫助。由於
//Wait for Page to Load until Expected Element is not Present
public void waitForPageToLoadElement(final String isElementPresent){
boolean elementBoolean;
do{
selenium.waitForPageToLoad("30000");
elementBoolean = selenium.isElementPresent(isElementPresent);
if (elementBoolean==false){
try{Thread.sleep(3000);}
catch (Exception e) {
//catch
}}
}
while(elementBoolean==false);
}
//Wait for Page to Load until Expected Text is not Present
public void waitForPageToLoadText(String isTextPresent){
boolean elementBoolean;
do{
selenium.waitForPageToLoad("30000");
elementBoolean = selenium.isTextPresent(isTextPresent);
if (elementBoolean==false){
try{Thread.sleep(3000);}
catch (Exception e) {
//catch
}}
}
while(elementBoolean==false);
}
//Opens url until Expected Element is not Present
public void openUrl(String url){
boolean userNameBoolean, passwordBoolean;
do {
selenium.open(url);
userNameBoolean = selenium.isElementPresent("id=loginForm:username");
passwordBoolean = selenium.isElementPresent("id=loginForm:password");
if (userNameBoolean==false && passwordBoolean==false){
try{Thread.sleep(3000);}
catch (Exception e) {
//catch
}}
}while (userNameBoolean==false && passwordBoolean==false);
}
我覺得你的情況下,將上述代碼中的無限循環去,如果找不到的元素。該元素是否出現在頁面上並且未找到?這是發生在特定元素還是隨機? –
如果不加載,則所有元素都不存在。它隨機發生。我需要有另一個代碼,它將等待一個條件滿足,而不是waitForPageToLoad(milliSeconds)方法。 –