Object name keeps changing when web app is relaunched
Hello. I am fairly new to TestComplete and having problems in getting my script to run everytime. It complaints about not finding the object, and the reason was that the object name changed. For example, when I recorded my script using the keyword method, the object names are captured, for instance this "Aliases.browser.pageImagenet.buttonNewPatient" get records for a create button but when I relaunch the web app and run the script again the object gets changed to "Aliases.browser.pageImagenet2.buttonNewPatient", it added a 2 (see attachment). When I remove the "2" the button is found again. Again, I am new on this but I read something about adding a wildcard/expression in the object. What is the best approach, I am sure I will have lots of this same problem in the web app and I would like to start understanding it. I heard of Mapping Objects, but I am not familiar with it either. What are my best options to make automation testing easier. Also, I want to use this same script on other Windows computers so i want to keep this in mind, when finding the right solution to this dynamic change. I learn best my examples so if you can show me how the object should be written and any other tips to avoid no object is found errors from happening. Thank you very much for your help.Solved1.9KViews0likes4CommentsObject Identification
Using Test Complete 12.10.602.7 I remember at a previous company I was using a testing package. There was a menu option where I could click on an object (such as a windows app window, etc) and say "Identiry" and it would tell you the name of the object so you could use it in your tests. Is there something similar in Test Complete?711Views0likes1CommentProblem with Object Extended Properties and Actions recognition in one specific case
Hi all, We have a set of tests coded with TestComplete 12.50 (12.50.4142.7 to be perfectly exact), working with common functions, and one day, one of these tests started logging errors dealing with interaction with objects like Tree Widget or Line Edit, which are manipulated in common functions. I mean all tests except it keep working correctly. The problem is systematic since 3 weeks ago, we use SVN to versionning our test scripts and we did not identify any change on this test or on the common functions concerned when the problem appeared. More details below : - We have a project suite with one project for each test (each test has one test item running the test) - We develop test on VM with TestComplete and execute them on other VM with TestExecute - On VMs, OS is Microsoft Windows 10 Business, 64-bit (10.0 Build 17134) - The test runs well on my development VM, on another execution VM too (which is currently use for other tests), but fails on the execution VM which it has to run - The application we are testing is a Qt application - Objects causing problem are custom Tree Widget or Line Edit inherited from QTreeWidget or QLineEdit - These custom objects are well presents in our Object Mapping where they have to be (Qt Object Mapping, Tree Widget and Line Edit, for Current and Default Project Properties) - We get errors like : Unable to find the object wItems. See Additional Information for details. Additional Info : The object with the specified attributes does not exist. ... The object "wItems" does not exist. Additional Info : You are trying to call the "Item" method or property of the "wItems" object that does not exist. ... The object "wItems.Item("TESTCOMPLETE")" does not exist. Additional Info : You are trying to call the "Selected" method or property of the "wItems.Item("TESTCOMPLETE")" object that does not exist. ... Unable to find the object ClickItem("TESTCOMPLETE"). See Additional Information for details. Additional Info : The object with the specified attributes does not exist. ... Unable to find the object wText. See Additional Information for details. Additional Info : The object with the specified attributes does not exist. - In these messages note that "TESTCOMPLETE" is the caption of the item we want to click on; and we check the item currently selected before. Besides, note that for each error, we got a screenshot and our application is well opened ans visible (we tried to force it with a SetFocus call before trying to interact with but it did not change nothing) We do not manage to explain what could be the reason of this problem and what could bring it about suldenly. We tried to go through Object Mapping and other Project Properties, VMs OS versions, TestExecute version, comparing all these elements between each VM and each project (because other projects work well). We read many forums on SmartBear Community but although we tried some suggestions found for other problems, we did not find solution. Please, can somebody help us go through this problem ?Solved1.3KViews0likes2CommentsProblem calling method of custom qt object with QMetaObject::invokeMethod
Hi Everyone, I am testing a Qt application with Test Complete, my context is : Application compiled with Qt 5.9.5 + MSVC 2015 64 bit Test Complete 12.50 with VBScript language In this example case, my application is only a QWidget with a QPushButton. When clicking on this button, a custon menu appears. This menu is a class CMenu, derived from QMenu CMenu is declared in object mapping under Qt Controls > Menu in Test Complete project properties (default and current) My need is : access some data of my CMenu. These data are in a QList<QString> private member of my CMenu class. So, I declared a public accessor in my class to get one item of my list by its index in the list. ... class CMenu : public QMenu { Q_OBJECT private: QList<QString> m_lstTestNames; public: ... Q_INVOKABLE QString getTestName(int index) const; ... }; ... QString CMenu::getTestName(int index) const { return this->m_lstTestNames.at(index); } It works fine, in the object browser of Test Complete, I found my object and this method Sys.Process("proto_cmenu").QtObject("CMenu", "", 1).getTestName Description : Function getTestName(Param1 as Integer) as Object Now I want to use this method in my test script. So, first I open my application and I click on the push button to display my menu, and then call my method like below for example(it's the line 46 of my script) : Log.Message "Test Name 0 = " & Sys.Process("proto_cmenu").QtObject("CMenu", "", 1).getTestName(0) My problem is : I got the following error : VBScript runtime error. Erreur non spécifiée Error location: Unit: "FELIX\FLX_TST_007\Script\MAIN" Line: 46 Column: 2. With the following message just above in the log : Debug String: QMetaObject::invokeMethod: No such method CMenu::getTestName(getTestName) Candidates are: getTestName(int) I don't understand this message, as you see above, I called my function with an integer in my script, why does it talk me about "CMenu::getTestName(getTestName)" ? Can someone give me some help to go through this problem ?1.5KViews0likes2CommentsIssue in name mapping
Using the object spy , I got a mapped name for an object. Say for example the mapped name looks like Aliases.abcd.xyz.window.Item I ran the test cases using this mapped name it all worked fine. Now after couple of days if I run it now it failed because the mapped name got changed . It got changed to like Aliases.abcd.xyz.window2.Item This has happened for couple of objects over a period of time. I raised this concern with my team and asked the developers if they have changed any of these objects. They confirmed that they didn't touch any of these objects. Can someone help me find out the reason as to why the mapped name gets changed for some of the objects ? I need to find a way to stop this , as this affectsmy test results2.5KViews1like7CommentsChecking if an Object contains a specific number
Hi, On my desktop application, I have a page that returns results of a search. The result pane is considered as 1 Object although there are many rows and columns within it. Everytime I execute the query after some actions, I want to check if the newly generated Number (e.g., Invoice #), is present, within the returned results I saw an article in the documentation that explains how to check if a web page contains a text by using the aqObject.CheckProperty method. However, it does not work correctly for me. Could someone kindly point how to acheive this the correct way? Not sure if using aqObject.CheckProperty method, is the right thing to do. Thanks!2.1KViews0likes9Comments