【问题标题】:css selector - get the valueCSS选择器 - 获得值
【发布时间】:2018-03-14 12:34:02
【问题描述】:
获取文本值 '2017-10-09' 的 css 选择器是什么?
<div class="col-xs-6">
<strong>
<!--ko text: date -->
2017-10-09
<!--/ko-->
<!--ko text: time -->
12:55
<!--/ko-->
</strong><br>
<!--ko text: locationName -->
City
<!--/ko-->
</div>
【问题讨论】:
标签:
html
css
selenium
dom
【解决方案1】:
没有这样的选择器。
除了少数例外情况(例如:first-line),选择器只允许您选择一个元素。
文本2017-10-09 不是一个元素,它甚至不是一个元素的整个文本内容。
strong 将允许您选择<strong><!--ko text: date -->2017-10-09<!--/ko--><!--ko text: time -->12:55<!--/ko--></strong>,但这比您要求的要多。
您可以选择 strong 元素,然后读取其文本内容,然后对其进行解析(例如,将其拆分为空格字符或使用诸如 /(\d{4}-\d{2}-\d{2})/ 之类的正则表达式)。
【解决方案2】:
据我所知,没有可以检查文本节点中数据格式的 CSS 选择器。您应该在日期周围包裹一个标签,并为该标签使用适当的选择器,例如:
<div class="col-xs-6">
<strong>
<!--ko text: date -->
<span class="date">
2017-10-09
</span>
<!--/ko-->
<!--ko text: time -->
12:55
<!--/ko-->
</strong><br>
<!--ko text: locationName -->
City
<!--/ko-->
</div>
或者,您可以定位 div 内的强标签,然后处理文本节点外的日期。