java - 访问 webdriver 中的子元素

标签 java html selenium xpath selenium-webdriver

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/

相关文章:

java - Apache FOP-需要从第一页中间开始创建多页表

JavaScript 仅显示浏览器特定的 CSS 前缀,即使添加了其他前缀也是如此

ASP.NET MVC - 使用模型中的 bool 值禁用 Html Helper 控件

HTML 溢出不干净

javascript - 使用 selenium 在弹出窗口中按 Enter

javascript - 页面开始加载时是否可以使用 Ruby 的 selenium-webdriver 执行 script

Python Selenium 处理带有长 URL 列表的超时异常

java - 如果发生异常如何继续循环迭代?

java - 将 Java AWS S3 代码部署到 openfaas 时出错

java - 在 ImageView 中分别设置来自相机的两个裁剪图像(Android Studio)