Salesforce 应用程序中的 xpath 说明
xpath clarification in Salesforce application
使用 selenium webdriver 和 java 为 salesforce 应用程序创建自动化测试脚本。我的 XPath 中有一些说明。
下面是销售人员应用程序 [Lightning 模式]
的 HTML 代码
<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>
从上面,我想得到标签的总数<one-app-nav-bar-menu-item>
下面是我的测试脚本
WebElement menuCount = driver.findElement(By.xpath("//div[@class='menuItemsWrapper']//slot"))
List<WebElement>menuItemCount = menuCount.findElements(By.tagName("one-app-nav-bar-menu-item"))
当我执行时,我得到 menuITemCount =0
让我知道我的脚本有什么问题
环境:
chromedriver
尝试调整到 By.xpath("//one-app-nav-bar-menu-item")
处理动态元素引发WebDriverWait。
WebDriverWait wait = new WebDriverWait(driver, 20);
WebElement menuCount=wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='menuItemsWrapper']//slot")));
List<WebElement>menuItemCount = menuCount.findElements(By.xpath(".//one-app-nav-bar-menu-item"));
System.out.println(menuItemCount.size());
使用 selenium webdriver 和 java 为 salesforce 应用程序创建自动化测试脚本。我的 XPath 中有一些说明。 下面是销售人员应用程序 [Lightning 模式]
的 HTML 代码<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>
从上面,我想得到标签的总数<one-app-nav-bar-menu-item>
下面是我的测试脚本
WebElement menuCount = driver.findElement(By.xpath("//div[@class='menuItemsWrapper']//slot"))
List<WebElement>menuItemCount = menuCount.findElements(By.tagName("one-app-nav-bar-menu-item"))
当我执行时,我得到 menuITemCount =0
让我知道我的脚本有什么问题
环境: chromedriver
尝试调整到 By.xpath("//one-app-nav-bar-menu-item")
处理动态元素引发WebDriverWait。
WebDriverWait wait = new WebDriverWait(driver, 20);
WebElement menuCount=wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='menuItemsWrapper']//slot")));
List<WebElement>menuItemCount = menuCount.findElements(By.xpath(".//one-app-nav-bar-menu-item"));
System.out.println(menuItemCount.size());