【问题标题】:find css selector with totally text matched找到完全匹配文本的 CSS 选择器
【发布时间】:2020-12-02 14:06:49
【问题描述】:

任何人都知道如何编写 css 选择器来查找包含完全文本的元素。我努力了 label:contains("^ab$")label[innertext="ab"]label[text="ab"] 它们都不起作用

<div>
<label>ab</label>
<label>ab cd</label>
<label>ab asd cd</label>
</div>

我只想找到元素&lt;label&gt;ab&lt;/label&gt;

【问题讨论】:

  • 如果可能,将标记更改为 &lt;label data-text="ab"&gt; 将允许您拥有一个直接选择器,而不必查找元素然后过滤它们。

标签: jquery selenium selenium-webdriver css-selectors


【解决方案1】:

通过 CSS 是不可能的。

阅读此处了解更多信息。

https://stackoverflow.com/a/1520469/7030091

基本上,他们考虑将其添加到 CSS3 中,但没有,因为它可能很难使其高效。

但是,您可以通过 Javascript 执行此操作。上一个链接也有一个例子。

【讨论】:

    【解决方案2】:

    如果您可以使用jquery,您可以使用filter 函数过滤包含特定字符串的元素:

    function getElementWithValue(elems, value){
        return elems.filter(function(index){
            return $(this).text() == value;
        });
    }
    
    $(document).ready(function(){
        var resultLabel = getElementWithValue($('label'), 'ab');
    });
    <div>
    <label>ab</label>
    <label>ab cd</label>
    <label>ab asd cd</label>
    </div>

    【讨论】:

      猜你喜欢
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      相关资源
      最近更新 更多