I have textboxes like the one whose html you see in the attached pic. TC does not report the NAME property as what you see in name= here. It's name is reported as Textbox(0). It does see the name as NativeWebObject.name OR NativeChromeObject.name. I want to use NAME. Ok sad me. Maybe I can't.
But I cannot use conditional mapping to idenitfy EITHER NativeWebObject.name (for IE and Edge) OR NativeChromeObject.name.
It would be more helpful to see what other properties TestComplete exposes to use. It could be that what you're seeing as "name" is showing up somewhere else.
As for conditional mapping... why not? It seems like that would be an optimal way to go. Although, potentially, you could get an error about a property not being supported or something.
If you can provide screenshots of properties on the object, perhaps we can help find something that would work better.
I looked again. As I was taking the requested screen shots, I saw attributes.name.nodevalue seems to work. The conditional mapping was not going to work from the TC UI because of limitations to the UI for selecting the property.
> attributes.name.nodevalue seems to work.
This is probably the best way to go (https://support.smartbear.com/testcomplete/docs/app-testing/web/general/object-identification/using-...) considering the technology your tested application is based on and obvious absence (or complete ignorance) of QA (not testing) activities. (Which is not your fault.)
Can you explain this
"considering the technology your tested application is based on and obvious absence (or complete ignorance) of QA (not testing) activities. (Which is not your fault.)"
> Can you explain this [...]
Your tested application seems to be created using React or Angular, both of which, by default, do not care about (external) testability of created html markup. While it is possible to create web pages with good semantic markup (i.e. with stable and unique identifiers for web elements), designers/developers usually do not care about this.
QA, which stands for 'Quality Assurance' is a set of preventive actions with the goal to assure the quality of the program been developed.
So, with QA activities and processes at place, management, stakeholders, other relevant people must be warned on the pre-development stage that created web pages will be of extremely low testability if no special attention and actions are taken from Development side. And this will be true regardless of test automation tool been used.
With a legacy app, there is no such thing as pre-development phase. What even is a pre-development phase? The world we live in is one where the organization eventually has to grow up. That is where we are now at my organization. The application is where it is today and is going where it is going moving forward. That's life.
Frankly, having a NAME attribute ought to be suffienct to find the damned thing. But that's me.
> Frankly, having a NAME attribute ought to be suffienct to find the damned thing.
I have reviewed your screenshot with the markup of the problematic web element and read the documentation (https://support.smartbear.com/testcomplete/docs/app-testing/web/general/object-identification/tree-m... and https://support.smartbear.com/testcomplete/docs/app-testing/web/general/object-identification/dom-mo...)...
As per documentation, it is my understanding that 'name' attribute must be considered: "The element’s
name in the HTML code."
So, I think that it is worth to create Support ticket (via the https://support.smartbear.com/message/?prod=TestComplete form) and ask for their comments.
I will really appreciate it if you update this thread with the reply from Support.
(Unless I missed something in the documentation - will spend some time reading it.)