如何使用xpath定位元素

时间:2016-08-31 11:24:30

标签: java html selenium xpath selenium-webdriver

<a ui-sref="apps.service" href="#/apps/service">
  <i class="glyphicon glyphicon-list icon zoom-icon text-info-dker"></i>
  <span class="font-bold"> Service</span>
</a>

如何找到元素?

driver.findElement(By.partialLinkText("service")).click();
driver.findElement(By.xpath("ui[href$=services]"));

4 个答案:

答案 0 :(得分:1)

partialLinkText区分大小写。尝试

driver.findElement(By.partialLinkText("Service")).click();

元素位于<a>标记中,而不是<ui>标记

driver.findElement(By.xpath(".//a[href*='services']"));

答案 1 :(得分:0)

You should try using xpath with WebDriverWait to wait until element visible and enable as below :-

new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath(".//a[contains(.,'Service')]"))).click();

答案 2 :(得分:0)

最好使用contains in来定位此xpath中的元素。下面的xpath是准确的。

driver.findElement(By.xpath(&#34; // A /跨度[含有(文本(),&#39;服务&#39)]&#34)

答案 3 :(得分:0)

这个XPath,

//a[normalize-space() = 'Service']

将选择标准化字符串值等于&#34; Service&#34;的所有a个元素。 - 非常适合你展示的例子。

警惕基于contains()的解决方案,因为它们还会匹配包含其他前导或尾随文本的字符串,这可能是您想要的也可能不是。