我尝试只从子元素中获取文本。请参见以下内容:
<strong class="EnvMain">
<strong id="currentClock">11:19</strong>
GMT
</strong>
我只想获取GMT文本。
我试着把xpath写得像这样:.//*[@id='userEnvironmentInfo']/div[2]/a/strong/text()]
,但这样就找不到该元素。
先谢了。
HTML更新:
<div class="DateTime">
<a class="EnvPicker" title="Change your timezone" href="javascript:void(0);">
<span class="EnvDD">▾</span>
<span class="EnvIcon DateTimeIcon">The time is:</span>
<strong class="EnvMain">
<strong id="currentClock">17:34</strong>
GMT
</strong>
<span id="currentDay" class="EnvMore">Monday</span>
<span id="currentDate" class="EnvMore">14.04.2014</span>
</a>
<div class="EnvContainer">
<ol id="timeZoneOptions" class="EnvList">
<li class="EnvItem">
<a class="EnvOption" title="Set the timezone to GMT-12" onclick="return false;" rel="-12" href="javascript:void(0);">
<strong class="EnvMain">GMT-12</strong>
<span class="EnvMore">Current time:01:25</span>
</a>
</li>
<li class="EnvItem">
<a class="EnvOption" title="Set the timezone to GMT-11" onclick="return false;" rel="-11" href="javascript:void(0);">
这里的天气将持续到格林尼治时间+12。
3条答案
按热度按时间w3nuxt5m1#
您正在搜索的xpath是:
此xpath返回文本,而不是web元素。
如果您想使用selenium + java获取文本,可以尝试以下操作:
看起来getText函数不会只返回
GMT
。但是我们可以在获得文本后解析如下字符串:km0tfn4u2#
使用以下xpath查找元素:
这个xpath所做的是找到类EnvMain的
<strong>
元素,该类EnvMain有一个id为currentClock的子元素<strong>
(最后的..
沿着dom返回父元素)。然后使用
getText()
方法提取文本:然后,如果你想忽略内部
<strong>
元素中的文本,只获取时区(“GMT”)...没有一个好方法可以用xpath来实现这一点,你必须使用Java中的正则表达式来移除你不想要的部分:hpcdzsge3#
getText()在你的例子中返回null,因为在列表项中有锚标签,然后是锚点标签的文本。所以使用getAttribute(“innerHTML”)。但是你将不能选择列表中的项。