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]");
答案 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
应该生成元素的文本。