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
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to