点击 旋转量角器.

Click on Spin in Protractor

本文关键字:量角器 旋转 点击      更新时间:2023-09-26
<hs-details-item ng-repeat="item in amenities" style="overflow:hidden" class="ng-scope">
            <hs-label class="ng-binding">Coca-Cola</hs-label>
            <hs-value-block>
                <hs>
                    <hs-spin ng-class="{'disabled': isAmenityPosting}" spin- ontrol="{changeCallback:setQuantity, value: item.quantity, min:0, params: item.amenity_id, title:'Quantity'}"><span class="disabled">-</span><span>+</span>
                        <!--<span hs-placeholder="0" localize="{data: item.quantity > 0 ? item.quantity:null, format: 'int', operation:'text'}"></span>-->
                        <span localize="{data: item.quantity, format: 'int', operation:'text'}">0</span>
                    </hs-spin>
                </hs>
            </hs-value-block>
        </hs-details-item>

场景:我需要单击一个旋转,这是一个"+"按钮,每次单击时都会依次增加数字。挑战:我有 10 次旋转不同的物品。如何使我的代码独一无二,以便单击正确的旋转?我可以看到这些项目的名称是唯一的(水,可口可乐,....),但这些不是被点击的那个。知道我如何在量角器中做到这一点吗?以下代码片段代码是一个示例,用于在单击旋转后增加可口可乐的数量。当我选择我的元素时,它是一个"+"按钮,它将指以下具有独特性的男女同校:

<hs-spin ng-class="{'disabled': isAmenityPosting}" spin- ontrol="{changeCallback:setQuantity, value: item.quantity, min:0, params: item.amenity_id, title:'Quantity'}"><

您可以根据标签filter()出所需的自旋元素:

var desiredLabel = "Coca-Cola";
var desiredSpin = element.all(by.repeater("item in amenities")).filter(function (spin) {
    return spin.element(by.tagName("hs-label")).getText().then(function (label) {
        return label === desiredLabel;
    });
}).first();
desiredSpin.element(by.tagName("hs-spin")).click();

或者,在量角器中是一种不受欢迎的方式 - 使用 XPath 表达式并一次性完成它:

var desiredSpin = element(by.xpath("//hs-details-item[hs-label = 'Coca-Cola']//hs-spin"));
desiredSpin.click();

通过对 alecxe 的建议进行微小更改,我使它起作用并能够单击"+"按钮:

element(by.xpath("//hs-details-item[hs-label='Coca-Cola']//hs-spin/span[2]")).click();