【问题标题】:Protractor: Finding Element by Div Text量角器:通过 Div 文本查找元素
【发布时间】:2015-11-08 01:33:36
【问题描述】:

嘿,我的 div 元素之一中有这段代码:

<div class="col-sm-8">Account Information: </div>

谁能告诉我如何在量角器代码中找到这个元素?有没有可能做这样的事情:

expect(element(by.divText('账户信息:')).isDisplayed()).toBe(true);

我有多个“col-sm-8”类的元素,所以我无法按类找到元素。我只是想知道是否有任何方法可以使用 div 元素中的文本找到该元素?感谢您的帮助!

【问题讨论】:

    标签: html protractor


    【解决方案1】:

    我建议你使用by.cssContainingText

    element(by.cssContainingText('.col-sm-8', 'Account Information'))
    

    【讨论】:

    • 这是迄今为止我在 SO 上找到的最佳答案,谢谢?
    • 如果一个是“帐户信息”,另一个是“信息”,第三个是“帐户”,您将如何区分项目?
    • 您只需更改cssContainingText element(by.cssContainingText('.col-sm-8', 'Account Information')) 的第二个参数中的字符串。如果你想检查“信息”,那就是element(by.cssContainingText('.col-sm-8', 'Information'))
    【解决方案2】:

    没有允许通过文本定位元素的 webdriver 方法。您可以尝试通过以下方式使用 xpath(未测试):

    element(by.xpath('//div[contains(text(), "Account Information: ")]')
    

    【讨论】:

    • 是的,您可以看到 xpath 定位器比 cssContainingText 定位器更具可读性。
    【解决方案3】:

    记住by.cssContainingText通过部分文本匹配元素

    所以element(by.cssContainingText('div', 'male')) 实际上会匹配malefemale 文本

    要解决这个问题,请使用精确匹配文本的 xpath

    element(by.xpath('//div[text()="male"]'))
    

    【讨论】:

      猜你喜欢
      • 2017-12-19
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      相关资源
      最近更新 更多