2014-09-26 56 views
2

这是我的HTML代码:切换到另一种使用XPath

<pre> 
<span class="cm-string">"userId"</span> 
":" 
<span class="cm-string">"abc"</span> 
"," 
</pre> 

我需要从“用户id”标签捕获文本“ABC”作为值ABC保持瞬间改变。

我试着用下面的代码,它失败了。

driver.findElement(By.xpath("//span[contains(text(),'userId')]/span")).getText(); 
+0

你的问题就没有意义了。没有'userId'标签。 “userId”本身就是“span”元素的文本内容。另外,你的java代码没有意义,因为你选择了一个包含某个字符串的span,然后......返回这个字符串? – 2014-09-26 13:40:27

回答

2

abcspan是以下同级含UserIdspan,使用它:

//span[contains(., 'userId')]/following-sibling::span 
+0

另一个疑问是,有很多子字符串的名称为“userId”,我如何找到确切的字符串“userId”?下面的代码给出错误,因为cotes //包含(包含(。,''userId'')]/following-sibling :: span – user3174553 2014-09-26 14:27:06

+0

@ user3174553当然,只是转义引号而不使用'contains()':'/ /跨度[。 ='\“userId \”']/following-sibling :: span' – alecxe 2014-09-26 17:03:00

+0

 "userId" ":" "abc" "," 
 "password" ":" "xyz" "," 
在上面的代码中,我如何从abc访问xyz。如果你用最后一段代码帮助我,我会非常感激。 – user3174553 2014-09-26 19:16:51