The mailing list has been closed since July 2022, but continues to serve as an archive of information about QF-Test.
If you want to stay informed about news about QF-Test, you can simply subscribe to our newsletter:
Subscribe to Newsletter
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [QF-Test] ComponentNotFoundException with subcomponent of JDialog
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