Forum Discussion
Wow... that's a strange looking table where the child objects of the table aren't cells but are panels... that's those extra div tags in the HTML.. really bizzare way of building a table.
In any case, we'll have to look elsewhere for the properties... with the desired cell highlighted, what happens if you go to advanced view (there's a link at the top of the properties panel)? What other properties are available that we could perhaps look for?
Thank you Robert! I felt the same way about this object. Even after using 'Advanced' it doesn't help. I've to talk with the architects to make it better.
appreciate your help.
Thank you
Abhi
- AlexKaras8 years agoChampion Level 3
Hi Abhi,
My real condolences...
This is a way how Angular works and how developers use it (and how architects design the application) - by default, Angular assigns no identification properties to the generated elements. Sometimes developers may assign some additional value to the web element's class property, but quite often this value is too generic and does not allow unique identification.
Unfortunately, as per my experience, you have only two options:
1) Talk to Development/Architects, explain them why unique identification properties (id or name) are needed for web elements and make this properties be generated;
2) Your only option to find the needed element on the page will be search by displayed text. (Yes, slow, hardly localizable, hardly reusable, etc. but this is Angular and 'modern way' of development.)
P.S. As I wrote in another thread, there is third option - develop some test(s) and go for seek leave for a week or two leaving developers to support your code. I bet that in several days the magic will happen and a lot of (if not all) page elements will get their unique IDs.
P.P.S. To all audience: This given case is an excellent example of why QAs / tests automators *must* participate on the project stage where development tools, technologies and requirements for them are discussed and approved. Been a member of such discussion, you will be able either to influence on the set of tools/technologies, or add the requirements that will make your life easier and improve work results or at least warn the management about risks and ensure that these risks are properly counted.
- shankar_r8 years agoCommunity Hero
AlexKaras wrote
P.S. As I wrote in another thread, there is third option - develop some test(s) and go for seek leave for a week or two leaving developers to support your code. I bet that in several days the magic will happen and a lot of (if not all) page elements will get their unique IDs.
Recently, This is happened for me :smileylol:
Thanks AlexKaras for the valuable words.
- Adagio8 years agoFrequent Contributor
Thank you, Alex!
I completely understand that situation and I'd be talking with the Architects and the designers. probably, we'll have to live with the way Angular JS controls work.
But, the good News is, I found another way to make it work and I was able to fetch the right row count and the required info from the table, and was able to get the size of it even when it's dynamic. I also came across some other facts with these type of controls which irritated me a lot. But after all that pain, it's working for me. Another thing with this type of control is, if you want to take some help from the DOM, even there it doesn't load all the rows at any given point in time. It displays the rows in the table on the UI dynamically based on how you scroll(up-down/left-right).
I used the Object.EvaluateXpath and to make the whole table load(doesn't happen unless you scroll back to the first item in the table) in the DOM and then calculate the size of it, I'm getting to the bottom of the table by using ScrollIntoViewIfNeed() on the first item(because I see the last/latest row when the table is displayed on the UI).
Thank you again for everyone's contribution to this thread.
Thank you
Abhi
- AlexKaras8 years agoChampion Level 3
Hi Abhi,
Thank you for the status update and hints provided.
In my case we also ended up with mostly using .EvaluateXpath() but, unfortunately, mostly searching for the displayed text.
There were already several threads on this forum where people struggled with Angular, so I think that others may benefit from the ways you have found to identify Angular controls on the page. Obviously, if they are not confidential, too implementation specific and may be shared.
- cauline8 years agoContributor
Sometimes you can execute the 'getItemCount()' method to get the # of rows/items from the table. I've have some success using this with SWT controls. This might not be available for the custom Angular controls.
Related Content
- 3 years ago
- 4 years ago
- 2 years ago
- 12 years ago
Recent Discussions
- 19 hours ago
- 19 hours ago
- 5 days ago