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
