Search code examples
selenium-webdriverxpathwebdriversalesforcesalesforce-lightning

xpath clarification in Salesforce application


Create an automated test script for salesforce application using selenium webdriver with java. I have some clarification in my XPath. Below is the HTML code for the salesforce application [Lightning mode]

<div one-appnavbarmenubutton_appnavbarmenubutton="" class="menuItemsWrapper" style="" xpath="1">
<slot one-appnavbarmenubutton_appnavbarmenubutton="">
<one-app-nav-bar-menu-item one-appnavbaritemdropdown_appnavbaritemdropdown="" class="slds-dropdown__item" one-appnavbarmenuitem_appnavbarmenuitem-host="">
<span one-appnavbarmenuitem_appnavbarmenuitem="" class="slds-truncate">
<span one-appnavbarmenuitem_appnavbarmenuitem="">Tech Path
</span>
</span>
</one-app-nav-bar-menu-item>
<one-app-nav-bar-menu-item one-appnavbaritemdropdown_appnavbaritemdropdown="" class="slds-dropdown__item" one-appnavbarmenuitem_appnavbarmenuitem-host="">
<span one-appnavbarmenuitem_appnavbarmenuitem="" class="slds-truncate">
<span one-appnavbarmenuitem_appnavbarmenuitem="">Keyword
</span>
</span>
</one-app-nav-bar-menu-item>
<one-app-nav-bar-menu-item one-appnavbaritemdropdown_appnavbaritemdropdown="" class="slds-dropdown__item" one-appnavbarmenuitem_appnavbarmenuitem-host="">
<span one-appnavbarmenuitem_appnavbarmenuitem="" class="slds-truncate">
<span one-appnavbarmenuitem_appnavbarmenuitem="">Invention Disclosures by Hierarchy
</span>
</span>
</one-app-nav-bar-menu-item>
</slot>
</div>

From the above, I want to get the total no of tag <one-app-nav-bar-menu-item>

below is my test script

WebElement menuCount = driver.findElement(By.xpath("//div[@class='menuItemsWrapper']//slot"))
List<WebElement>menuItemCount = menuCount.findElements(By.tagName("one-app-nav-bar-menu-item"))

When I executed i am getting the menuITemCount =0

Let me know is there any problem in my script

Environment: chrome driver


Solution

  • Try adjusting to By.xpath("//one-app-nav-bar-menu-item")