CSS 定位器无法识别量角器测试中的元素?
CSS Locator not recognising an element in Protractor Test?
在下面的 Protractor 测试中,我尝试使用 CSS 定位器计算 div 的数量:
let list = element.all(by.css('div[class="ag-header-cell ag-header-cell-sortable"]'));
expect(list.count()).toBe(11);
正如您从下面的屏幕截图中看到的那样,这个 class 有 11 个 div,但由于某种原因我的测试只计算了 10 个。所以我的测试失败了以下错误消息:
Expected 10 to be 11
为了查看哪个 div 没有被识别,我记录了每个 div 的文本:
element.all(by.css('div[class="ag-header-cell ag-header-cell-sortable"]')).each((it) => {
it.getText().then((text) => {
console.log('Text', text);
})
})
带有 col-id='Ni'
的 div 由于某种原因未被识别,即使它确实具有我在测试中指定的 CSS class。
谁能告诉我为什么会这样?
我以某种方式设法让定位器使用此功能:
element.all(by.css('div.ag-header-cell'))
.map(function (cell) {
return cell.getText();
})
.then(function (cellValues) {
expect(cellValues).toEqual(["1st Expected Result", "2nd Expected Result"]);
});
这捕获了我无法使用问题中的代码获得的所有 11 个值。
在下面的 Protractor 测试中,我尝试使用 CSS 定位器计算 div 的数量:
let list = element.all(by.css('div[class="ag-header-cell ag-header-cell-sortable"]'));
expect(list.count()).toBe(11);
正如您从下面的屏幕截图中看到的那样,这个 class 有 11 个 div,但由于某种原因我的测试只计算了 10 个。所以我的测试失败了以下错误消息:
Expected 10 to be 11
为了查看哪个 div 没有被识别,我记录了每个 div 的文本:
element.all(by.css('div[class="ag-header-cell ag-header-cell-sortable"]')).each((it) => {
it.getText().then((text) => {
console.log('Text', text);
})
})
带有 col-id='Ni'
的 div 由于某种原因未被识别,即使它确实具有我在测试中指定的 CSS class。
谁能告诉我为什么会这样?
我以某种方式设法让定位器使用此功能:
element.all(by.css('div.ag-header-cell'))
.map(function (cell) {
return cell.getText();
})
.then(function (cellValues) {
expect(cellValues).toEqual(["1st Expected Result", "2nd Expected Result"]);
});
这捕获了我无法使用问题中的代码获得的所有 11 个值。