Forum Discussion

tvklovesu's avatar
tvklovesu
Frequent Contributor
2 years ago

Getting the count of elements on the page

Hi there,

I am trying to get the count of this object from the webpage and run the loop. The Count is returning null for me when I inspect in the console I have around 9. Also for this FindElements when I try to use the library functions its taking for ever to load and shows only spin.

 

 

Source code

 

2nd option

var TestedPage, CSSSelector

CSSSelector = "button[title='More options']"

TestedPage = NameMapping.Sys.browser.pageRavenCore.FindElements("//div[@data-testid='canvasItem']")

if I use TestedPage.QuerySelector(CSSSelector) I am getting the following error.

 

 

3rd option

for the following script I was able to get the object but still when I say object.Count its returning empty


 var res;

Aliases.canvas_card_Item
res= Aliases.canvas_card_Item.FindElements("button[title='More options']");
// Check the result
if (!strictEqual(res, null))
// If the element was found, output its HTML code
Log.Message(res.Count);
else
// If the element was not found, post a warning to the log
Log.Warning("The element was not found.");

 

4th option

var TestedPage

TestedPage = NameMapping.Sys.browser.pageRavenCore.FindElements("//div[@data-testid='canvasItem']")
TestedPage.Count
Log.Message("canvasCard selector "+ TestedPage.Count) It printed undefined

2 Replies

  • rraghvani's avatar
    rraghvani
    Champion Level 3

    Here's an example,

     

    function Test1()
    {
        var page = Sys.Browser().Page("https://services.smartbear.com/samples/TestComplete15/smartstore");
        var artlist = page.FindElement("//section//div[contains(@class, 'artlist')]");
        
        var res = artlist.QuerySelectorAll("article");
        if (!strictEqual(res, null)) {
            Log.Message("Number of items found: " + res.length);
        
            for (var i = 0; i < res.length; i++) {
                Log.Message(res[i].contentText);
            }
        } else {
            Log.Warning("The element was not found");
        }
    }

     

    • tvklovesu's avatar
      tvklovesu
      Frequent Contributor

      Hi rraghvani, I used the same document to get the code snippet and changed according to my requirement. But any how thanks for looking in to this. Actually I was able to fix the issue my self that the testedPage object I am using the wrong parent element. There is one more level up parent which refers to the complete frame, and after referring that element then I was able to get the correct count.

      The fix is

      CSSSelector = "div[data-testid='canvasItem']"

      TestedPage = NameMapping.Sys.browser.pageRavenCore.canvas_Window

      Using this the TestedPage.QuerySelectorAll(CSSSelector) returned the correct count