2013-09-24 143 views
2

我使用硒webdriver在我的网页上使用xpath获取一些文本。使用Xpath从span-webdriver获取文本

这是代码

<a class="ng-binding" data-toggle="tab" href="#tabCreatedByMe"> 
          Created By Me        
<span class="badge ng-binding">3</span> 
</a> 

我需要数 '3'。这个数字不断变化,每次

我做了这个代码,但它不返回任何东西

public String getAmountSubtab1() throws InterruptedException{ 
    WebElement s = driver.findElement(By.xpath("//*[@class='badge ng-binding']")); 
    return s.getText(); } 

建议?

+1

你的意思是's.getText'什么都不返回?如果将其更改为'.findElements',并检查返回的集合的大小,它具有多少个元素?如果你让你的XPath更有针对性怎么办? '// span [@ class ='badge ng-binding']' – Arran

+0

当你说它什么都不返回时,这是否意味着你得到了空值?或者你看到任何NoSuchElementExceptions? 另外,不建议使用Xpath。我建议你使用CSS选择器。 – LINGS

+0

你使用IE吗?正如Arran所说的那样,driver.findElement(...)无法正常工作。 – ovejaexiste

回答

1

你确定你只有一个带有类标记ng-binding的跨度它可能是你在这之前可能有另一个跨度与相同的类名称。建议在识别元素时不要使用类名。使用这个xpath。应该管用。

//a[contains(text(), 'Created By Me')]/span