2011-11-24 36 views
1

我有一個命令webDriver.switchTo().alert();它有一個超時,並等待,直到它發現警報或經過的時間大於超時值。我想減少這個特定命令的超時時間,但沒有找到辦法。我該怎麼做?硒2爲特定命令設置超時

如果可能,我想將超時設置爲零,但在警報命令後回到其默認值。

更新

這就是硒核心功能,我用它如下:

try { 
     // TODO PERFORMANCE PROBLEM BECAUSE OF TIMEOUT IF NO ALERT EXISTS 
     Alert alert = webDriver.switchTo().alert(); 

     // check if alert exists 
     if(alert != null) { 
      String alertText = alert.getText(); 

      // TODO alert handling 
      log.info("Alert detected: {}", alertText); 
     } 
    } catch (Exception e) { 
     // timeout if alert does not exist 
    } 
+0

你是否設置了超時時間,如果是這樣的話? – CBRRacer

+0

不,我不知道,因爲我不知道如何。 – Alp

回答

1

沒有看到多數民衆贊成包裝這個方法調用的類,我將不得不作出猜測。我的猜測是,你有這樣的包裹,等待警報或其他阻塞的函數,直到頁面加載完成或document.ready完成。所以無論是阻止腳本,這應該可以通過在調試中運行應用程序並逐步遍歷方法來驗證。如果你想發佈更多的代碼,那麼我可能會更好地幫助你。

-------- ----------編輯

你要能夠做到這一點的唯一方法是延長的硒命名空間中的Alert類。用瞬間失敗重載它,我猜測它正在使用某種形式的javascript切換到警報,您應該能夠在第一次嘗試中指定失敗。我無法給你任何特定的代碼,因爲我找不到Alert類的源代碼。

+0

我更新了問題 – Alp