这是salesforce应用程序。 我想从<a>
标签中获取以下属性值
-
赫雷夫
-
标题
网页代码
<one-app-nav-bar-item-root one-appnavbar_appnavbar="" data-id="home" data-assistive-id="operationId" aria-hidden="false" draggable="true" class="navItem slds-context-bar__item slds-shrink-none slds-is-active" role="listitem" xpath="1">
<a href="/lightning/page/home" title="Home" tabindex="0" draggable="false" aria-describedby="operationId-14" class="slds-context-bar__label-action dndItem" style="">
<span class="slds-truncate">Home</span>
</a></one-app-nav-bar-item-root>
硒代码(时髦的脚本语言(
for(int i:(1..size)){
WebElement getHref = driver.findElement(By.xpath("//one-app-nav-bar-item-root[${i}]//a[1]"))
println getHref.getAttribute("href")
println getHref.getAttribute("title")
}
输出
null
null
注意: 当我在 FireFox 中执行上述代码时,我得到了预期的结果
要提取href
和title
属性的值,您必须诱导WebDriverWaitvisibilityOfElementLocated()
或elementToBeClickable()
,您可以使用以下定位器策略:
-
xpath:
-
href
:System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//one-app-nav-bar-item-root/a[//span[text()='Home']]"))).getAttribute("href"));
-
title
:System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//one-app-nav-bar-item-root/a[//span[text()='Home']]"))).getAttribute("title"));
-
而不是像//one-app-nav-bar-item-root[${i}]//a[1]
那样的xpath
。像(//*[@role='listitem'])[${i}]//a[1]
一样尝试