HTML 代码:
<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]");
最佳答案
不确定这是否适用于 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
应该生成元素的文本。
关于java - 访问 webdriver 中的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26067078/