Hi again,

I read your mail about giving up but I'm still going to answer this one 
on the off chance you're willing to invest more time in this.

On 04/11/2011 07:53 PM, Jean-Baptiste BRIAUD -- Novlog wrote:
> OK, I updated both java client driver and server with the new 1.4 material.
>
> Tests are still failing at the same place with the following error, no more 
> blocking, so it is getting better :
>
> 19:41:29.688 INFO - Command request: 
> qxEditTableCell[qxhv=*/[@classname="novlog.composer.ui.applicationexplorer.ApplicationExplorer"]/qx.ui.container.Composite/qx.ui.container.Composite/*/[@classname="novlog.fwk.ui.table.Table"],
>  type=rouge] on session
> 19:41:29.824 INFO - Got result: ERROR: Hybrid locator couldn't find element 
> using 
> qxh=qx.ui.container.Composite/qx.ui.table.pane.Scroller/qx.ui.table.pane.Clipper/qx.ui.table.pane.FocusIndicator/child[0]
>  on session
>
> Few lines later in the log :
> com.thoughtworks.selenium.SeleniumException: ERROR: Hybrid locator couldn't 
> find element using 
> qxh=qx.ui.container.Composite/qx.ui.table.pane.Scroller/qx.ui.table.pane.Clipper/qx.ui.table.pane.FocusIndicator/child[0]
>  at
> com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97)
>  at
> com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:91)
>  at
> com.thoughtworks.selenium.QxSelenium.qxEditTableCell(QxSelenium.java:67) at
> novlog.uat.fwk.AbstractTest.editTableCell(AbstractTest.java:188) at
> [CUT]
>
>
> What is an hybrid locator ? What Hybrid mean ?

http://bit.ly/ik1Vfv

In short, a special type of locator. The qxTable* commands use it to 
access the internal widget structure of the table.

> Also, the locator look like "reworked" from
> qxhv=*/[@classname="novlog.composer.ui.applicationexplorer.ApplicationExplorer"]/qx.ui.container.Composite/qx.ui.container.Composite/*/[@classname="novlog.fwk.ui.table.Table"]
> to
> qxh=qx.ui.container.Composite/qx.ui.table.pane.Scroller/qx.ui.table.pane.Clipper/qx.ui.table.pane.FocusIndicator/child[0]
>
> and I don't think this rework is done in our code.
> Any idea ?

See above. The hybrid locator uses the one you supplied to find the 
table, then adds the "reworked" one to find the FocusIndicator child widget.

>
> Because we could have called the qxselenium with the wrong locator, I added a 
> trace to reflect our call to the qxEditTableCell() method:
> [DBG] [AbstractTest] 
> editTableCell(qxhv=*/[@classname="novlog.composer.ui.applicationexplorer.ApplicationExplorer"]/qx.ui.container.Composite/qx.ui.container.Composite/*/[@classname="novlog.fwk.ui.table.Table"],
>  rouge)
>
> It sound like the internal structure of a qx1.4 table had changed, so the 
> locator is wrong.
> What do you think about that idea ?

Doesn't look that way. I would've noticed that in the test suite I use 
to check the user extensions.

Still, from the error message you're getting, it's obvious the locator 
can't find the FocusIndicator's DOM element. This can easily happen if 
nothing is selected in the table. As you're aware, the table needs to be 
put into editing mode (by double clicking a cell) before using 
qxEditTableCell. This makes the FocusIndicator appear if nothing was 
selected in the table before.
So you need to make sure that the double click executed before 
qxEditTableCell had the intended effect. Maybe try waiting for a second 
between the two commands so the browser has time to update the DOM.

It's also often helpful to watch the browser as the test suite is 
executed, keeping an eye on Selenium's debug log (the one accessed via 
the button in the Selenium browser window). This is were debug output 
from the qooxdoo user extensions ends up.

>
>
> About the bug you mentioned, it appears to be linked to TreeVirtual while we 
> are using basic qx.ui.table.Table, could that be linked anyway ?

Yes, since TreeVirtual shares much of the table's code. But judging from 
the error message you posted it doesn't seem likely that this causes 
your problem.


Regards,
Daniel

------------------------------------------------------------------------------
Forrester Wave Report - Recovery time is now measured in hours and minutes
not days. Key insights are discussed in the 2010 Forrester Wave Report as
part of an in-depth evaluation of disaster recovery service providers.
Forrester found the best-in-class provider in terms of services and vision.
Read this report now!  http://p.sf.net/sfu/ibm-webcastpromo
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to