【问题标题】:Find Element by Class按类查找元素
【发布时间】:2016-04-22 22:18:10
【问题描述】:

代码片段:

<div class="add create_Amenities" hs-gesture="{handler:showPopup, param:menu_group}" ng-if="showPlus(menu_group,$index)">

在量角器中使用以下命令但没有成功。 操作:此命令必须单击添加 (+) 按钮。

原因:使用定位器未找到元素:通过(css 选择器,.add create_Amenities)

element(by.css('.add create_Amenities')).click();

【问题讨论】:

    标签: javascript angularjs css-selectors protractor


    【解决方案1】:

    .add create_Amenities

    这不会匹配所需的元素。从字面上看,它会在具有add 类的元素下找到create_Amenities 元素(想象&lt;create_Amenities&gt;...&lt;/create_Amenities&gt;)。

    您的意思是:

    .add.create_Amenities
    

    Protractor 中还有一个$ 快捷方式,你可以这样做:

    $(".add.create_Amenities").click();
    

    至于您的单独问题,它仍然是在黑暗中拍摄,但您可以尝试以下方法:

    • 点击via javascript

      var elm = $(".add.create_Amenities");
      browser.executeScript("arguments[0].click();", elm)
      
    • 移动到元素然后点击:

      browser.actions().mouseMove(elm).click().perform(‌​);
      

    【讨论】:

    • 谢谢你的回复:我尝试了你的两个建议....按钮没有被点击....这次没有产生错误
    • @Kevin 但您没有收到之前遇到的错误,对吧?您现在描述的问题听起来像是一个单独的问题。您确定单击此特定元素会导致页面上出现某些内容吗?请重新检查您需要单击的元素..可能是这个div中的元素?
    • Alecxe:是的,点击“+”按钮应该会跳转到另一个页面。我没有收到以前遇到的错误。我的按钮可能需要双击按钮...尝试了以下操作,也没有工作。我也没有收到此命令的任何错误。 browser.driver.actions().doubleClick(element(by.css('.add.create_Amenities'))).perform();
    • @Kevin 你试过移动到元素然后点击吗? (以类似的方式通过 browser.actions())
    • 没有运气与以下任一:browser.actions().doubleClick(element(by.css('.add.create_Amenities'))).perform();
    猜你喜欢
    • 2014-02-15
    • 2021-03-05
    • 2011-06-29
    • 2023-01-03
    • 1970-01-01
    相关资源
    最近更新 更多