Hi All, Thank you all for contribution. I was able to find two ways to solve above main question, with our thread discussion. Generally in selenium, driver.findElement() returns a type of WebElement, if there is such element present. If there is no such an element it will throw an exception. To overcome ,
1. we need to implement have separate method using *driver.findElement(By.id("**identifier**"))* https://github.com/wso2/product-es/blob/514b439c0b608bca4cca81f7c588a7dfeec598ad/modules/integration/tests-ui-integration/ui-test-utils/src/main/java/org/wso2/es/ui/integration/util/BaseUITestCase.java#L82 2. Next way is to use *driver.findElements(By.id("identifier")).size() . * This method will return 0 (zero) even if such a element is not present. We do not need to use try block here. It will not throw an exception. Regards. On Wed, Feb 10, 2016 at 7:32 PM, Malintha Fernando <malinth...@wso2.com> wrote: > Hi Lahiru, > > Instead of using *driver.findElement(By.id(""))* you can use > *driver.findElements(By.id("")) > *which returns a List of elements. So you can check the size of the List. > It doesn't fail the test even though elements are not existing. > > if you want to check whether there are any elements present and then fail > the test based on it you can use following. > > > > *Assert.assertTrue(driver.findElements(By.id("identifier")).size() == 0);* > - BR > Malintha > > > On Wed, Feb 10, 2016 at 11:53 AM, Dharshana Warusavitharana < > dharsha...@wso2.com> wrote: > >> Hi Lahiru, >> >> You can use TestNg soft assert for this. >> >> Basically what you want is >> 1. Check the element whether it is exists. >> 2. It should not make assert fail and stop the test execution if element >> is not there. >> please refer [1] for soft assert. >> >> [1]. >> https://rameshbaskar.wordpress.com/2013/09/11/soft-assertions-using-testng/ >> >> Thank you, >> Dharshana. >> >> On Tue, Feb 9, 2016 at 5:32 PM, Madhawa Perera <madha...@wso2.com> wrote: >> >>> Hi Lahiru, >>> >>> Try following code snippet, if you are looking for a method, that >>> returns true/false when checking the existence of an element. >>> >>> private boolean isElementPresent(By by) { >>> >>> if(driver.findElements(by).size() != 0){ >>> //System.out.println("true"); >>> return true; >>> } else { >>> //System.out.println("false"); >>> return false; >>> } >>> } >>> >>> Hope this will help you. Check the following [1] reference too. >>> >>> [1] >>> http://stackoverflow.com/questions/6521270/webdriver-check-if-an-element-exists >>> >>> Regards, >>> Madhawa >>> >>> >>> On Tue, Feb 9, 2016 at 4:32 PM, Lahiru Cooray <lahi...@wso2.com> wrote: >>> >>>> Hi Lahiru, >>>> >>>> I have faced the similar issue and I noticed that some times the >>>> dynamically loaded elements are not loading when we are using wait.until() >>>> without a driver refresh() So I used a similar code snipped like this: >>>> >>>> >>>> >>>> WebDriverWait tempWait = new WebDriverWait(driver, 5); //5 is the >>>> waiting time in seconds >>>> >>>> for (int i = 0; i < 2; i++) { >>>> try { >>>> >>>> tempWait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector( >>>> "a[href*='/store/assets/webapp/" + appId + >>>> "']"))); >>>> driver.navigate().refresh(); >>>> break; >>>> } catch (org.openqa.selenium.TimeoutException e) { >>>> //Expected error when no element found >>>> } >>>> } >>>> >>>> Here i'm trying two times and waiting a fair time to load the element. >>>> >>>> >>>> On Tue, Feb 9, 2016 at 3:34 PM, Lahiru J Ekanayake <lahi...@wso2.com> >>>> wrote: >>>> >>>>> Hi , >>>>> >>>>> I have already tried with wait.until method. It will also return >>>>> timeout exception searching after given timeout. I think anyway we have >>>>> to >>>>> use try block to check existences of an element. I have looked for a >>>>> method that returns ture/false on a given element existence . I'm not sure >>>>> that kind of method already in selenium. >>>>> Thank you for your help. >>>>> >>>>> Regards >>>>> >>>>> On Tue, Feb 9, 2016 at 3:13 PM, Rajeenthini Satkunam < >>>>> rajeenth...@wso2.com> wrote: >>>>> >>>>>> Hi lahiru, >>>>>> >>>>>> If you need to check that element is present in the current UI, You >>>>>> can go with this method *isElementPresent(By by)*. >>>>>> >>>>>> for example in your case *driver.**isElementPresent* >>>>>> *(By.id("elemnt_id")) *will return true if the element is present in >>>>>> current UI or else it will return false.Hope it will help you. >>>>>> >>>>>> For your reference >>>>>> >>>>>> [1] - >>>>>> https://github.com/wso2/product-ds/blob/master/modules/integration/tests-ui-integration/ui-test-utils/src/main/java/org/wso2/ds/ui/integration/util/DSWebDriver.java#L47 >>>>>> >>>>>> On Tue, Feb 9, 2016 at 3:01 PM, Lahiru J Ekanayake <lahi...@wso2.com> >>>>>> wrote: >>>>>> >>>>>>> Hi , >>>>>>> >>>>>>> I'm writing selenium tests for GREG publisher UI. When implementing >>>>>>> UI test cases, some situations we need to check whether some elements >>>>>>> exists, before click or make any operations on them. >>>>>>> Selenium provides, *driver.findElement(By.id("elemnt_id")) * >>>>>>> method to find any element by id. Problem is if that element is not >>>>>>> exist , it will return an error, saying >>>>>>> *org.openqa.selenium.NoSuchElementException: Unable to locate >>>>>>> element:{"method":"id","selector":"elemnt_id"}* >>>>>>> >>>>>>> Is there any way to check the existence of any element , without >>>>>>> catching the error? . >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> Regards >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> >>>>>>> >>>>>>> *Lahiru J Ekanayake**Software Engineer* >>>>>>> Mobile : +94 (0) 77 8812629 / +94(0) 778509547 >>>>>>> Email : lahi...@wso2.com >>>>>>> WSO2, Inc.; http://wso2.com/ >>>>>>> lean . enterprise . middleware. >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Dev mailing list >>>>>>> Dev@wso2.org >>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> >>>>>> *Thank You.* >>>>>> >>>>>> *Rajeenthini Satkunam* >>>>>> >>>>>> *Associate Software Engineer | WSO2* >>>>>> >>>>>> >>>>>> *E:rajeenth...@wso2.com <rajeenth...@wso2.com>* >>>>>> >>>>>> *M :+94770832823 <%2B94770832823> * >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> >>>>> >>>>> *Lahiru J Ekanayake**Software Engineer* >>>>> Mobile : +94 (0) 77 8812629 / +94(0) 778509547 >>>>> Email : lahi...@wso2.com >>>>> WSO2, Inc.; http://wso2.com/ >>>>> lean . enterprise . middleware. >>>>> >>>>> >>>>> _______________________________________________ >>>>> Dev mailing list >>>>> Dev@wso2.org >>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>> >>>>> >>>> >>>> >>>> -- >>>> *Lahiru Cooray* >>>> Software Engineer >>>> WSO2, Inc.;http://wso2.com/ >>>> lean.enterprise.middleware >>>> >>>> Mobile: +94 715 654154 >>>> >>>> _______________________________________________ >>>> Dev mailing list >>>> Dev@wso2.org >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>> >>> >>> -- >>> Madhawa Perera >>> *Software Engineer* >>> Mobile : +94 (0) 773655496 >>> <%2B94%20%280%29%20773%20451194> >>> madha...@wso2.com >>> >>> _______________________________________________ >>> Dev mailing list >>> Dev@wso2.org >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> >> Dharshana Warusavitharana >> Senior Software Engineer , Test Automation >> WSO2 Inc. http://wso2.com >> email : dharsha...@wso2.com <dharsha...@wso2.com> >> Tel : +94 11 214 5345 >> Fax :+94 11 2145300 >> cell : +94770342233 >> blog : http://dharshanaw.blogspot.com >> >> lean . enterprise . middleware >> >> _______________________________________________ >> Dev mailing list >> Dev@wso2.org >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > Malintha Fernando > Software Engineer > WSO2 Inc. | http://wso2.com > Mobile : +94 8874922 > Blog : http://blog.malintha.org > > Lean . Enterprise . Middleware > > > > > > > -- *Lahiru J Ekanayake**Software Engineer* Mobile : +94 (0) 77 8812629 / +94(0) 778509547 Email : lahi...@wso2.com WSO2, Inc.; http://wso2.com/ lean . enterprise . middleware.
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev