how to get Object.Name without triggering element search
Hi guys, I know that this topic may sound a bit weird, but I have a very good reasons for it :) Here is my situation... I have a mapped element, containing an xpath, which I need to pass to a function as a parameter. The xpath alone, may not find an element! This is a critical point of my problem! The xpath is supposed to be used as a parameter in FindElements method. And because FindElements parameter requires xpath, I first need to extract the xpath from the mapped element. BTW, of course, I know that I can pass the xpath directly as a parameter. But I want all my xpaths stored in Name Mapping and not here or there in keyword/script modules. Therefore, I want to pass either mapped object or string value, representing the mapped/alias object. The problem is, that if the mapped element is used directly, as a parameter of function, during runtime, it always triggers the element search. But as I mentioned above, the xpath alone cannot find the element! So I decided to assign the mapped element via string constant (to avoid the search of element) and then convert the string back to object using Eval function. Eval correctly converts the string to object, but then, after calling Name property, it again tries to search the mapped element in UI, which, of course fails, not to mention takes long time. So, is there a way, how to get the xpath of a mapped element, without triggering element search? Thanks.Solved91Views0likes7CommentsDisplay any System.GUID property in object explorer as the actual GUID raw value in WPF
We have a situation where the original development team didn't name most of the objects in WPF, they did however add in a property that contains a system GUID. It would help our named mapping enormously if we could reference the value as the raw GUID rather than a series of decoded values. In the above image, the GUID value has been broken down into a series of sub elements and then seem to have been converted into decimal values. The raw value, as seen below, is the actual GUID value matching the above property as we would like to see it (from Snoop) What we would like is to have an additional raw value field displaying the complete GUID whenever the object property is of type System.GUID allowing the named mapping to identify the object by this property.35Views0likes2CommentsAbility to get the get/extract the XPath or Css from the name mapping objects
I would like to have one location where I specify the xpath my html elements. Most of the time, this data is stored in the NameMapping. A lot of the time you can use aliases in scripts. However, there are some times ... like for the 'waitelement' which you have to use the xpath or css. I would really like to be able to get the xpath or css from the nameMapping. This would make things a lot safer and less error prone. I use keyword tests as much as I can, but there are times when scripting is beneficial. var myAlias = Aliases.MyWebApp.AdminButton; var selectorArray = myAlias.GetSelectors(); the selectorArray would be an array of objects that looks like this: selectorArray = [{'css', '#myAdminButton'}, {'xpath', '//div/button[contains(@class, 'adminbutton')]'}, {'xpath', //div//button}]281Views2likes2CommentsClone Name Repo
Hi. I want to clone a name repository from one project suite to another and I want to clone keyword tests from one project suite to another. Then I want to go into cloned Project suite and change three characters in the url of objects with use of a wildcard ? Or *. Is that possible? TestComplete 15.x.x -todd217Views0likes2CommentsNameMapping: Add "AND" clause to xpaths for element identification
NameMapping: Add "AND" clause which would require two or more unique xpaths to be true for the element to be identified. We would like the ability to use an "AND" clause which would require two or more unique xpaths to be true for the element to be identified. The reasons for this area as follows: We have had limited success using the “AND” condition within an xpath statement. We have had numerous cases where the expression is syntactically correct and confirmed by TestComplete in the NameMapping Annotation but it fails to find the specified text within the node/object. In other cases, it finds the desired object (viewGroup w/ text) but fails a property checkpoint using a cmpContains (text), returning a null string even thought the NamedMapping found the object based on that defined text. Example: xpath: //*[@className='android.widget.ScrollView/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup' and @text="SR Zone Controller"] xpath: //*[@className='android.widget.ScrollView/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup' and contains(@text,'SR Zone Controller')] The second and more concerning issue is the case where an object is discovered using a combined expression as shown below that correctly locates the object viewGroup which contains some specific text but fails a checkPoint operation. Example: xpath: //android.widget.ScrollView/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup[*[@text="SR Zone Controller"]] We have had some success finding element using "FindElementByXPath, but this method is much more involved and difficult to implement. It would be so much easier for the user if an “AND” clause was added to the NameMapping XPATH statement as an enhancement to the “OR” clause. Note: We are working with a Mobile App and don't have the luxury of ObjectIDs or CSS for object identification.18Views1like0CommentsWarning messages in the test run log for improve performance
Hello, Recently I have updated all my nameMapping to use unique identifiers in the XPath and deleted all others that TC saved when recorded. So tipically I have only one selector for each object or element. When I ran the test it gave me the following warning almost for all the objects. You can improve the performance of the object search in the test. The NameMapping.Sys.browser.pageAuth.login_SignIn_Btn object can be found faster if you make //input[@type="submit"] the first selector in its selector list. And in the nameMapping for this object I see only one selector as I mentioned above. Still not sure why its throwing warning messages. Even when I click on Improve performance button in the log it just added an Empty selector, and even with that when I rerun the test it gave same message. One another thing is that the Extended Find column doesn't have any checkboxes. Is there something I missed in the settings or somewhere else TIA556Views1like3CommentsDevExpress htmlContentControl TilesView
Recently we started using DevExpress controls on our project. Mapping them is an unobvious task. Object Spy can't give me the required result. I've tried recording tests and it helped me in previous cases but not with the last. We have two types of panels shown below: Recording the tests gives me htmlContentControl.Click(107, 23); This approach obviously seems wrong to me. Because I want to click a text, not just a point of a given panel. Also, I need to check e.g. if it was selected. Has anyone some advice on how I should search for a proper container of these items?34Views0likes1CommentAllow module variables and parameters in NameMapping
Currently, TestComplete allows to use only Project Variables to be used for modifying property values in NameMapping. But this is very limiting factor and it can make the project variables unmaintainable and confusing, especially in case of too many Project Variables! So it would be really handy, to be able to use also module variables and parameters, even if it would require additionalRefreshMappingInfo action. Thanks.12Views2likes0CommentsMerge KeywordTests and NameMapping
we have been working with TestComplete for over 6 years now and it looks like we will be expanding rather than reducing test automation with TestComplete. We have different teams for different software products. There are often 2 people working on the same test automation project within a team. As we have integrated the TestComplete projects in the TFS source code management, it is no problem to check files in and out. What does cause us difficulties, however, is working on a file at the same time. This is about keyword tests but more about name mapping. Due to the XML structure and the GUIDs it contains, it is not possible to merge files after separate editing. However, this function would be very good and would significantly increase the effectiveness of everyday work with TestComplete. Now our request: Can you create a way to set up the project structure in such a way that merging is possible? Or can a tool be created within TestComplete that can handle the merging? There is the "Merge with" function for name mapping, but that is not what I mean and does not work in that sense. What would really make sense would be a project structure that allows files to be merged with a normal text editor or merge tool if they have been edited by 2 or more users at the same time. Can you implement something like this for TestComplete in the future?58Views2likes0CommentsExtended Scripting Support for Name Mapping
Currently (version 15.61), there is only rudimentary scripting support for the name mapping section (supports adding and removing name mappings, but unlike in the GUI functionality, adding name mappings is done without adding an alias). Any advanced action via scripts needs to use the name mapping file itself, which is very cumbersome. Example use cases: 1.) Advanced “Add” with parameters -> additional creation of an alias node 2.) Get/set identification properties separately via name mapping or alias nodes (without needing to run the application under test) 3.) Get path information (get name mapping path from alias and vice versa) 4.) Create your own scanning routine -> Scan with one click 5.) Apply conditional mode for identification properties in scripts Advantages: - The manipulation of the name mapping files is carried out “officially” - User doesn't have to worry about formatting the name mapping file - Overall easier creation of scripts related to name mapping20Views0likes0Comments