2018 up to now | 2017 | 2016 | 2015 | 2014 | 2013 | 2012 | 2011 | 2010 | 2009 | 2008 | 2007

(older archive entries before 2007 are not shown here, but included in the onsite-search)

Mailing List - Entries of 2013


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [QF-Test] ComponentNotFoundException with subcomponent of JDialog


  • Subject: Re: [QF-Test] ComponentNotFoundException with subcomponent of JDialog
  • From: Gregor Schmid <Gregor.Schmid@?.de>
  • Date: Thu, 19 Dec 2013 15:45:45 +0100

Hi Matt,

the problem is that SUT scripts are executed on the event dispatch
thread. This is necessary, otherwise accessing GUI components from a
script could cause race conditions or deadlocks.

The drawback is that you cannot wait for something to happen in the
GUI within an SUT script because that script is blocking the GUI so
nothing's going to change while doing so.

For that reason the timeout parameter in rc.getComponent doesn't
really help.

Isn't it possible to achieve the same with normal QF-Test nodes, 'Wait
for Component' etc.?

You can also use a combined approach - first a 'Wait for component'
followed by your script because once the component is visible
rc.getComponent will work.

Alternatively, as a currently experimental feature you can add a
doctag

@async

to the comment of your SUT script node. In that case the script will
run in an independent Thread and rc.getComponent should work as usual.
However, once you have obtained the component you need to wrap any
calls to that component's methods in SwingUtilities.invokeAndWait.

Best regards,
    Greg

"Griswold, Matthew (RIS-DAY)" <Matt.Griswold@?.com> writes:

> I’m working with a Java application, and I’m using a Groovy Java script in QF Test to handle the
> automation.
>
> When a search is performed in the application window, a dialog appears soon afterwards with a
> ‘Processing…’ message and a ‘Cancel’ button.
>
> I’m trying to click on the ‘Cancel’ button programmatically in Groovy Java.  However the following
> statement produces an error.
>
> cancelBtn = rc.getComponent("buttonCancel", 10000)
>
> class de.qfs.apps.qftest.shared.exceptions.ComponentNotFoundException: Element not found
>
> I have the above statement in a try catch block inside of a loop which retries the getComponent
> command every 200 milliseconds, but the statement never passes.
>
> I think the problem is related to the ‘buttonCancel’ object is underneath a JDialog window which
> is separate from the main application.
>
> [cid]
>
> I’ve been able to click the ‘Cancel’ button using Record and Replay, but I can’t repeat the same
> transaction in Groovy Java.
>
> --------------------------------------------------------------------------------------------------
>
> The information contained in this e-mail message is intended only for the personal and
> confidential use of the recipient(s) named above. This message may be an attorney-client
> communication and/or work product and as such is privileged and confidential. If the reader of
> this message is not the intended recipient or an agent responsible for delivering it to the
> intended recipient, you are hereby notified that you have received this document in error and that
> any review, dissemination, distribution, or copying of this message is strictly prohibited. If you
> have received this communication in error, please notify us immediately by e-mail, and delete the
> original message.
>
> _______________________________________________
> qftest-list mailing list
> qftest-list@?.de
> http://www.qfs.de/mailman/listinfo/qftest-list

--
Gregor Schmid

E: gregor.schmid@?.de
T: +49 (0)8171 38648-11
F: +49 (0)8171 38648-16

Quality First Software GmbH | www.qfs.de
Tulpenstr. 41 | 82538 Geretsried | Germany
GF Gregor Schmid, Karlheinz Kellerer
HRB München 140833