2016-01-08 27 views
1

如何讓Selenium IDE在繼續填寫表單之前等待模態圖層消失,然後單擊按鈕移至下一步?Selenium IDE - 等待模態消失

+0

頁面加載後會立即顯示模態圖層嗎?每次頁面加載時都會獲取模態圖層? –

+0

是的,模式將在頁面加載後立即顯示。問題是隱藏的DIV中有多個面板,單擊「繼續」按鈕時將顯示這些面板。但是,當從DIV1移動到DIV2並填充DIV2:input1,DIV2:input2等時,模態覆蓋圖將完成加載,然後這些字段將重置! - 不幸的是,我無法改變JavaScript的行爲。這是爲了確保在下一個Tab中你不會有預先填充的字段。所以我必須等待模態消失。 –

+0

waitForElementNotPresent? WaitForElementNotVisible?我會嘗試其中的一種。 – DMart

回答

1

對於waitForElementNotPresent或WaitForElementNotVisible來說,這似乎是完美的用例。這兩者都將等待,直到屏幕上不再顯示元素的默認超時值。

您可以使用暫停,但幾乎從不是正確的答案,因爲waitFor's只會花費超時所需的時間量。暫停將永遠等待全時,這是不好的。

+0

我會同意你100%,但它看起來像「暫停」是唯一的作品。同時我放棄了Selenium IDE來使用BeHat + Mink。看起來更可靠。謝謝。 –

+0

如果暫停工作,而不是等待正確的事情。 – DMart

+0

對於那些無法找到'waitForElementNotVisible'的人,請嘗試使用'waitForNotVisible'。 – krismath

0

C#代碼

我有同樣的問題,因爲6個月以上,沒有更多的崩潰此代碼爲我工作。

public static void WaitForModal(this IWebDriver driver) 
    { 
     wait.Until<IWebDriver>((d) => 
     { 
      if (driver.FindElements(By.ClassName("modal-backdrop")).Count == 0) 
      { 
       return driver; 
      } 
      return null; 
     }); 
    } 

它等待,直到它找到沒有更多IWebElement有「模式 - 背景」的class