gpt4 book ai didi

angularjs - Protractor 通过绑定(bind)在中继器中找到元素?

转载 作者:行者123 更新时间:2023-12-01 05:12:06 25 4
gpt4 key购买 nike

我正在尝试编写一个与转发器中的绑定(bind)匹配的简单测试。

当我按 CSS 类搜索时,它可以正常工作,但是在我们的代码中“不允许”这样做。我也不能使用 HTML 标签作为定位器。我只能通过属性或直接绑定(bind)找到。

我尝试了许多不同的方法,包括(但得到错误或没有结果):

var productPageUrl = element.all(by.repeater('product in products').row(0).column('{{product.productPageUrl}}'));

不确定它是否有区别,但在应用程序中,ng-repeat 包含 HTML 模板。

这有效(但不能使用):
products.then(function(prods) {
prods[0].findElement(by.className('homepage-panel-link')).getAttribute('href').then(function(href){
expect(href).toMatch('/products/1');
});
});

重复的 HTML 模板:
<div data-ng-repeat="product in products">
<div data-property-name="productItem-{{$index}}">
<a href="{{product.productPageUrl}}" class="homepage-panel-link" data-property-name="productPageUrl"></a>
</div>
</div>

有没有简单地测试绑定(bind)product.productPageUrl???从上面有效的代码来看,要获得这个值(value)似乎还有很长的路要走。

最佳答案

看来您只是在寻找定位器 by.binding ? http://angular.github.io/protractor/#/api?view=ProtractorBy.prototype.binding

IE。

var productPageUrl = element(by.binding('product.productPageUrl'));
expect(productPageUrl.getAttribute('href')).toMatch('/products/1');

或者如果你有很多匹配:
var productPageUrls = element.all(by.binding('product.productPageUrl'));
expect(productPageUrls.getAttribute('href').get(0)).toMatch('/products/1');
or
expect(productPageUrls.getAttribute('href')).toMatch(['/products/1', '/products/2', ...]);

关于angularjs - Protractor 通过绑定(bind)在中继器中找到元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23996357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com