Forum Discussion

tawilli5's avatar
tawilli5
New Contributor
7 years ago

Exploring the Dom - Finding ChildNodes (Discussion Two)

I am unable to retrieve any child elements within a table. When using the following code, I am able to retrieve the entire row with no issue:

 

1. var xpath = "//tr/td/div[text() = 'Ryan STIG Regression Test']"; 
2. var theVisitor = page.FindChildByXPath(xpath)
3. 
4. if(theVisitor.Exists){
5. 
6. Sys.HighlightObject(theVisitor);
7. Log.Message(theVisitor.parentElement.parentElement.innerText); 
8. 
}

But when adding the following code :

8. Log.Message(theVisitor.parentElement.parentElement.cells[1].innerText);

I receive a JavaScript runtime error. “TypeError: Cannot read property ‘innerText’ of undefined.

This is a valid element search, as it works with no problem when utilizing the browser console via the dev tools

Why am I not able to retrieve the child elements in TestComplete but I am in the browser console? Any help would be very much appreciated! Thanks in advance.

 

TestComplete_2018-12-04_13-19-19.png

  • TestComplete identifes objects differently.  It reads the DOM to do so but then identifies objects based pon properties of the object.  If parentElement is not recognized as a table, it won't have a "cells" property according to TestComplete so even the "cells" call won't work.

     

    If you're going to have the greatest success with TEstComplete, I'd move away from using XPath as your prirmary means of identiification.  Look up the OBject browser and NameMApping in the documentation and start working from there in identifying objects.

  • tristaanogre's avatar
    tristaanogre
    Esteemed Contributor

    TestComplete identifes objects differently.  It reads the DOM to do so but then identifies objects based pon properties of the object.  If parentElement is not recognized as a table, it won't have a "cells" property according to TestComplete so even the "cells" call won't work.

     

    If you're going to have the greatest success with TEstComplete, I'd move away from using XPath as your prirmary means of identiification.  Look up the OBject browser and NameMApping in the documentation and start working from there in identifying objects.