Tôi mới sử dụng AngularJS/protractor để mọi hướng dẫn về điều này được đánh giá cao. Vì Angular JS instantiates các phần tử html thông qua ng- chỉ thị không có 'id's etc cho phép tôi định vị các phần tử cụ thể. (Rõ ràng là tôi muốn làm điều này để xác nhận nội dung, nhấp vào chúng vv) js góc My đoạn mã trông như:Cách tìm các phần tử html cụ thể, AngularJS, thước đo
<div ng-repeat="item in myList">
<span ng-if="item.category == 'lights'">
<img src="../../../{{item.icon}}"/>
 <span id="foo">{{item.name}}</span> 
</span>
</div>
Tôi đang cố gắng xác định vị trí các yếu tố {{}} item.name như tôi lặp trên danh sách với điều này:
element.all(by.repeater('item in myList')).then(function(rows) {
noOfItems = rows.length;
for (i = 0; i < noOfItems; i++) {
row = element.all(by.repeater('item in myList')).get(i);
row.isElementPresent(By.id('foo')).then(function (isP) {
if (isP) {
console.log("foo exists?" + isP);
row.findElement(By.id('foo')).then(function (el) {
el.getText(txt).then(function (txt) {
console.log("Item name " + txt);
});
});
}
});
}
});
Từ kiểm tra các yếu tố 'hàng' có vẻ là đối tượng selen vì vậy tôi gọi 'isElementPresent (...) và các công trình này tuyệt vời. Nó phát hiện đúng số lượng các phần tử 'foo'. Tuy nhiên khi row.findElement (...) chạy, đặc tả kiểm tra kết thúc sớm. (Không có lỗi, nó chỉ kết thúc)
Tôi biết rằng sẽ có nhiều phần tử 'foo' trong tài liệu nhưng tôi hy vọng rằng vì chúng được truy vấn trong phần tử html phụ, (hàng) điều này có thể hoạt động.
Bất kỳ đề xuất/giải pháp nào?
lạ, row.findElement (...) phải ném một lỗi, vì nó là một mảng và không nên có hàm findElement. hàng [0] .findElement sẽ hoạt động. "foo tồn tại?" xuất hiện trong nhật ký console? – nilsK