2014-02-19 64 views
0

我正在面對有關彈出窗口(而不是瀏覽器彈出應用程序之一)的問題,並即時處理它完美。但問題是我不知道什麼時候出現,並且默認情況下我使用Thread.sleep 20秒來處理它。現在我必須縮短時間,並且必須有效地處理這個問題。任何人都可以幫助我,而不使用Thread.sleep。無法預測彈出窗口

的Thread.sleep(20000);

if(oASelFW.driver.findElement(By.xpath("//div[@class='fsrFloatingMid']")).isDisplayed()){ 
     oASelFW.driver.findElement(By.xpath("//a[@class='fsrCloseBtn']")).click(); 
} 
+1

您可以使用webdriverwait類等元素使用預期條件方法出現。此外,如果您聲明瞭隱式等待,那麼默認情況下腳本會等待該元素出現。讓我知道你是否需要進一步的幫助。 – Vinay

回答

0

您需要使用Explicit waits這將使等到某個條件得到滿足 - 而你的情況是,直到目前元素。

WebElement whatever = (new WebDriverWait(driver, 10)) 
    .until(ExpectedConditions.presenceOfElementLocated(
     By.xpath("//div[@class='fsrFloatingMid']"));