Is your `NoSuchElementException` in the catch clause by any chance `java.util.NoSuchElementException`?
cheers, Dinko On 8 January 2018 at 16:18, Mohan Radhakrishnan <radhakrishnan.mo...@gmail.com> wrote: > In the second case it is this. > > org.openqa.selenium.NoSuchElementException > > In the first case this seems to escape out. > > So I changed my first clause to this. > > }catch( NoSuchElementException nse ){ > print "Catch clause " + nse > }catch( Exception e ){ > print "Catch clause " + e > } > > It prints org.openqa.selenium.NoSuchElementException if I catch 'Exception'. > > Does this have anything to do with the 'closure' shown in this trace ? > > at > com.automation.pages.PageObjectLayer$_waitUntil_closure2.doCall(PageObjectLayer.groovy:39) > at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:208) > at > com.automation.pages.PageObjectLayer.waitUntil(PageObjectLayer.groovy:39) > at > com.automation.page.test.WidgetTest.waitUntilNoSuchWidgetExceptionWithMessage(WidgetTest.groovy:54) > > Thanks. > > On 8 January 2018 at 19:28, Paul King <pa...@asert.com.au> wrote: >> >> What does printing out `nse` in both cases show? >> >> On Mon, Jan 8, 2018 at 11:02 PM, Mohan Radhakrishnan >> <radhakrishnan.mo...@gmail.com> wrote: >>> >>> Hello, >>> >>> These catch clauses are somehow different from each other. Why ? >>> >>> In the first case 'NoSuchElementException' is somehow escaping the >>> 'catch' block. My test fails. >>> >>> But the second clause succeeds as expected. >>> >>> Clause 1 : >>> >>> catch( NoSuchElementException nse ){ >>> >>> throw new NoSuchWidgetException( " Element " + by.toString() + " not >>> found" + >>> " after polling for [" + >>> pollingInterval.longValue() + >>> "] with timeout set to [" + >>> timeOut.longValue() ); >>> } >>> >>> >>> Clause 2 : >>> >>> try{ >>> WaitForWidget<Widget> wait = >>> new WaitForWidget<WebDriver>(wd). >>> >>> pollingEvery(pollingInterval.longValue(),unit). >>> withTimeout(timeOut.longValue(),unit). >>> withMessage(supplierClosure) >>> >>> wait.until( { wd.findElement( by )} as Function ) >>> }catch( nse ){ >>> throw new NoSuchWidgetException( " Element " + by.toString() + " not >>> found" + >>> " after polling for [" + >>> pollingInterval.longValue() + >>> "] with timeout set to [" + >>> timeOut.longValue() ); >>> } >>> >>> Thanks, >>> Mohan >> >> >