Java Selenium Jana-如何从标记内部获得所需的值

Java Selenium Jana-如何从标记内部获得所需的值,java,selenium,automation,Java,Selenium,Automation,如何从这样的东西中得到一个值。这是一个工具提示,我想从上面的标签中获取BPAZ3XG。如何在Selenium中实现这一点。如果您的目标元素BPAZ3XG在web应用程序中没有重复项,您可以尝试使用contains文本,正如我在下面提到的 <i data-html="true" data-placement="top" data-trigger="hover" data-original-title="Backend Offer Details" data-content="<dl c

如何从这样的东西中得到一个值。这是一个工具提示,我想从上面的标签中获取BPAZ3XG。如何在Selenium中实现这一点。

如果您的目标元素BPAZ3XG在web应用程序中没有重复项,您可以尝试使用contains文本,正如我在下面提到的

<i data-html="true" data-placement="top" data-trigger="hover" data-original-title="Backend Offer Details" data-content="<dl class='dl-horizontal itemCodeHolder'><dt>Code : </dt><dd>BPAZ3XG</dd><dt>SOC : </dt><dd>No Matching SOC</dd></dl>" data-toggle="popover" class="icon-info-sign boPopover"></i>    
为了打破这一局面

*是一个与任何元素(如标记)匹配的选择器-它返回一个节点集

[]是对该节点集中的每个单独节点进行操作的条件。如果其操作的任何单个节点与括号内的条件匹配,则匹配

文本是一个选择器,它匹配作为上下文节点的子节点的所有文本节点-它返回一个节点集


contains是一个对字符串进行操作的函数。如果传递给它一个节点集,则该节点集将通过返回节点集中节点的字符串值转换为字符串,该节点在文档顺序中位于第一位

我不确定您是否有I元素的定位器,因此我添加了一个代码,以防您没有。对于i定位器,我假设数据原始标题='Backend Offer Details'在页面上是唯一的。如果不是,你必须调整它

基本上,我找到I元素,获取数据内容属性(一个小的HTML/XML片段),然后在第一个dd标记中查找文本。注意:数据内容HTML片段中有两个dd标记

//*[contains(text(),'BPAZ3XG')]

这篇文章的写作方式让它看起来像一篇评论,而不是一个答案。你能把你的答案编辑得更具体些吗?谢谢大家的建议,我已经对我的答案做了修改。这个值就像是唯一的代码,它对每个新数据都是动态的。。。所以我需要一些东西,虽然它是动态的,但能让我得到那个价值。
WebElement element = driver.findElement(By.cssSelector("i[data-original-title='Backend Offer Details']"));
String dataContent = element.getAttribute("data-content");
System.out.println(dataContent.substring(dataContent.indexOf("<dd>") + 4, dataContent.indexOf("</dd>")));