Protractor 如何在量角器中定位类中的多个文本元素?

Protractor 如何在量角器中定位类中的多个文本元素?,protractor,Protractor,在我的测试中,我需要使用量角器测试验证突出显示的文本(肯塔基州列克星敦) <li id="address" class="list"> <div class="content"> <small class="mb-1"> <span> Suite # 278 <br> </span> **Lexington, KY** </small> </li> 278套房 **肯塔基州列克星敦** 如何

在我的测试中,我需要使用量角器测试验证突出显示的文本(肯塔基州列克星敦)

<li id="address" class="list">
<div class="content">
<small class="mb-1">
<span>
Suite # 278
<br>
</span>
**Lexington, KY**
</small>
</li>
  • 278套房
    **肯塔基州列克星敦**

  • 如何使用css或cssContainingText定位器验证突出显示的文本?

    事实上,量角器的创建者已经做好了准备,请仔细阅读,以便更好地了解
    css
    &
    cssContainingText
    的使用。我将在这里简短地回答您的问题-使用
    元素(by.cssContainingText('.content','Lexington'))

    更新1:
    如果要添加断言。。这样做-
    expect(element(by.cssContainingText('.content','Lexington'))).toContain('Lexington,KY')

    对于一个我感到困惑的问题,因为您似乎从未关闭content div…它是在li关闭后关闭的吗

    无论如何,我只是简单地更改HTML,这样您就不需要一些疯狂复杂的选择器了。我会这样做:

    <li id="address" class="list">
      <div class="content">
        <small class="mb-1">
          <span>
            Suite # 278
            <br>
          </span>
          <cityState>Lexington, KY</cityState>
        </small>
    </li>
    
    function checkCityState(){
      return element(by.tagName('cityState')).getText();
    }
    
    expect(checkCityState()).toBe('Lexington, KY');
    
  • 278套房
    肯塔基州列克星敦
  • 函数checkCityState(){ 返回元素(按.tagName('cityState')).getText(); } expect(checkCityState()).toBe('Lexington,KY');
    Try:
    driver.findelement(by.xpath(.//span[contains(text,Suite#278)]);
    driver.findelement(by.xpath(.//li[contains(text,**Lexington,KY**)];
    driver.findelement(by.xpath(.//li[text(),Suite#278)];
    driver.findelement(by.xpath(.//li[text(),Lexington,KY
    @Kishan-感谢您的回复,但我们没有使用xpath。您能建议使用css包含文本定位器吗?尝试过,但我收到消息,预期'Suite#271 Lexington,KY'等于'Lexington,KY'。我给出了
    div
    css,因此它将获得完整的文本…只需使用
    toContain()
    。我已经更新了答案谢谢你,aditya,我有动态值。但是我已经参数化了,它工作了。如果你不能或者不想添加这个标记,我想“return element(by.id('address')).element(by.css('.mb-1>span::after')).getText();”也可以工作(就像复杂的方式一样,呵呵)。