如何在量角器中使用特定的标签名称和文本获得后代



i具有以下结构(仅用于示例)。在量角器中,我通过ID获得了最高元素。但是,其他元素没有ID。我需要获取包含文本'20'的"标签"元素。量角器中是否有一种简单的方法可以选择带有特定标签的元素,该标签包含来自父元素的所有后代的特定文本?

  <pc-selector _... id="Number1">
    <div ...></div>
    <div ...>
          <div ...>
                <check-box _...>
                   <div _ngcontent-c25="" ...>
                       <label _ngcontent-c25="">
                          <input _ngcontent-c25="" type="checkbox">
                          <span _ngcontent-c25="" class="m-checkbox__marker"></span>
                       20 More text to follow</label>
                    </div>
                 </check-box>
         </div>
    </div>
  </pc-selector>

我找不到任何意义,所以我已经尝试了XPath,但是持久器抱怨我的XPath是无效的:

parentElement = element(by.id('Number1'));
return parentElement.element(by.xpath(".//label[contains(text(),'20'))]"));

有什么想法吗?

您在[contains(text(),'20')]中有一个附加括号这可以使用单个XPATH或链接其他定位器来实现。

该过程是您必须先找到具有正确ID的DIV,然后找到它的孩子的标签。

//Xpath
element(by.xpath("//pc-selector[@id='Number1']//label[contains(text(),'20')]"));
//Chained CSS
element(by.id('Number1')).element(by.cssContainingText('label','20'));

您也可能有兴趣了解XPath轴,这可以让我们进行非常动态的选择。

您可以使用直接XPath访问标签。

element(by.xpath("//*[@id='Number1']//label"));

最新更新