I was thinking about this a bit, and I could probably use a hidden form 
field or some other DOM change to indicate the completion of the table load 
- it might be more reliable.

On Monday, August 8, 2016 at 11:34:04 AM UTC-7, Kay Pac wrote:
>
> Does anyone have code for interacting with celltables in selenim tests?
>
> I have a selenium test and a CellTable that is filled with the results of 
> an RPC call. The table displays a "loading" image until the rows are 
> populated, and I need to wait for the "loaded" condition in my selenium 
> test code. I notice that in the element tree there are two TBODY elements, 
> a second one which is styled "display: none" when the table is loaded - 
> this contains the loading image.
>
> I am using an xpath expression to find the second TBODY: 
> "//*[@id='gwt-debug-gameDetailsTable']/tbody[2]"
> Here is the code I am using right now. Basically, if the table has already 
> loaded prior to looking for the TBODY, everything is okay - isDIsplayed is 
> false. But if it isn't, neither of these ExpectedConditions work, even 
> though the first one only checks to see that it isn't displayed anymore. I 
> am using HTMLUnit version 22 and selenium 2.53.1.
>
>         WebElement tbody2 = driver.findElement(By.xpath("//*[@id='" + 
> GWTID_GAMEDETAILSTABLE + "']/tbody[2]"));
>         if(tbody2.isDisplayed())
>         {
>             try {
>                 logger.info("waiting for games table to load...");
>                 Boolean until = (new WebDriverWait(driver, 10)).until(new 
> ExpectedCondition<Boolean>() {
>                     @Nullable
>                     @Override
>                     public Boolean apply(@Nullable WebDriver input) {
>                         return tbody2.isDisplayed() == false;
>                     }
>                 });
>                 //Boolean until = (new WebDriverWait(driver, 
> 10)).until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//*[@id='"
>  
> + GWTID_GAMEDETAILSTABLE + "']/tbody[2]")));
>                 logger.info("until = {}", until);
>             } catch(Exception ex)
>             {
>                 logger.warn("{}", ex);
>             }
>         } else {
>             logger.info("no need to wait for games table to load, 
> 'loading' tbody is hidden");
>         }
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit+unsubscr...@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to