【问题标题】:How to click at an element by the CSS code using Protractor?如何使用 Protractor 通过 CSS 代码单击元素?
【发布时间】:2017-11-14 14:53:48
【问题描述】:

我一直在尝试使用 CSS 选择器单击元素,但它不起作用:

<button _ngcontent-c16="" class="btn btn-flat btn-no-text btn-kebab-view">
         <i _ngcontent-c16="" class="zmdi zmdi-more-vert"></i>
</button>

我正在尝试:

element.all(by.css('.btn .btn-flat .btn-no-text .btn-kebab-view')).first().click();

量角器给我错误:

失败:索引超出范围。试图访问索引处的元素:0,但是 只有 0 个元素匹配定位器 By(css selector, .btn .btn-flat .btn-no-text .btn-kebab-view)

【问题讨论】:

  • 试试element.$("button[_ngcontent-c16='']").click();
  • 有时,当页面具有动态 html 或您的量角器导航逻辑“太快”或“太慢”时 - 您可能会尝试在页面实际存在之前或之后查找元素。
  • 如果我的答案适用于您——请勾选我的答案附近的勾号。谢谢。

标签: javascript selenium protractor


【解决方案1】:

您应该使用以下 CSS 选择器:.btn.btn-flat.btn-no-text.btn-kebab-view

【讨论】:

    【解决方案2】:

    尝试使用 XPath:

    对于按钮:

    //button[@class='btn btn-flat btn-no-text btn-kebab-view']
    

    或者对于 i 标签:

    //i[@class='zmdi zmdi-more-vert']
    

    【讨论】:

      【解决方案3】:

      只需使用类名定位器:

      by.className('btn btn-flat btn-no-text btn-kebab-view')
      

      或者您可以使用 XPath:

      //*[@class='btn btn-flat btn-no-text btn-kebab-view']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-18
        • 2017-10-09
        相关资源
        最近更新 更多