我有一段代碼需要存儲在try catch塊中。自定義等待try catch webdriver
這是一段代碼。我說的是
try{
this.driver.manage().timeouts().implicitlyWait(3000, TimeUnit.MILLISECONDS);
this.wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.id("PegaGadget0Ifr")));
} catch(Exception e){
System.out.println(e.toString());
}
正如我已經建立,現在它的工作原理,但如果框架不存在,它會繼續到抓之前等待60秒是可以設置自定義超時值try catch塊。
我想隱式地等待()會做的伎倆(思考如果框架不可用隱式等待將嘗試將DOM對象池3秒,然後移動捕捉),但它似乎並不工作,但它仍然等待超時前60秒,並說明
'Timed out after 60 seconds waiting for frame to be available:'
任何人都可以指出我可能如何修改超時等待生成。或者在try catch塊上設置超時時間,所以如果frame不可用並且只需繼續腳本,我不必等待1分鐘?
謝謝。
感謝您的重播,基本上是當頁面加載它有不同的按鈕和一些這個按鈕打開「選項」這是一個框架,有時幀被分離(中由於JavaScript負載)從頁面,所以我得到陳舊元素異常。所以這行代碼做這個.wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.id(「PegaGadget0Ifr」)));在進行一些操作之前等待一個幀被完全加載。有時候如前所述需要等待,但大多數情況下不是當框架不分離時不需要等待領先。 –
但這個嘗試catch塊不會在重新加載幀不需要時等待。並且在超時之前花費大量時間完成1分鐘。 –
如何添加1個更多的條件來檢查頁面是否實際包含Iframe元素,如果它有元素,那麼等待否則出來try catch block(); Assert.assertTrue(driver.getPageSource()。contains(textOnThePage)); 所以這將檢查你的頁面源代碼是否有Iframe,並根據你可以等待或不等待。 –