访问webdriver中的子元素

时间:2014-09-26 19:36:25

标签: java html selenium xpath selenium-webdriver

HTML code:

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

我需要从abc值访问xyz值。 xyz的值在每次登录时都会不断变化,所以我需要一个来自abc的xpath。 我尝试了以下代码,但失败了:

driver.findElement(By.xpath("//span[. = '\"abc\"']/followingsibling::span[2]");

1 个答案:

答案 0 :(得分:2)

不确定这是否适用于Selenium,但遵循xpath

//span[. = '"userId"']/ancestor::pre/following-sibling::*/span[2]/text()

获得结果

"xyz"

为了使用Selenium获取文本,表达式似乎是

driver.getText(By.xpath("//span[. = '"userId"']/ancestor::pre/following-sibling::*/span[2]");
http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#getText上找到

getElement需要一个节点而不是文本,getText应该生成元素的文本。