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 <[email protected]> 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 <[email protected]
> > 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 <[email protected]>
>> 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 : [email protected]
>>> WSO2, Inc.; http://wso2.com/
>>> lean . enterprise . middleware.
>>>
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> [email protected]
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>>
>> *Thank You.*
>>
>> *Rajeenthini Satkunam*
>>
>> *Associate Software Engineer | WSO2*
>>
>>
>> *E:[email protected] <[email protected]>*
>>
>> *M :+94770832823 <%2B94770832823> *
>>
>>
>
>
> --
>
>
>
> *Lahiru J Ekanayake**Software Engineer*
> Mobile : +94 (0) 77 8812629 / +94(0) 778509547
> Email : [email protected]
> WSO2, Inc.; http://wso2.com/
> lean . enterprise . middleware.
>
>
> _______________________________________________
> Dev mailing list
> [email protected]
> 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
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev