如果规范在循环内,量角器测试总是通过
Protractor test always passes, if the spec is inside a loop
问题:
使用 CODE 部分中的以下代码,循环内的 expect
块 forEach
总是路过。
示例场景及其各自的测试报告截图
expect('bt bt-primary').toContain('btn');
我的要求:
- 我需要获取任何给定页面中所有按钮的列表,我应该能够通过 E2E 测试用例测试自定义 CSS 行为。
- 此测试代码应可跨不同页面测试文件重复使用。
- 已禁用 selenium 承诺管理器以使用
async/await
方法。
- 在尝试实现此目的时,我遇到了以下问题。
代码:
describe('Login form', () => {
it('should navigate to page containing login form', async () => {
await expect(browser.getCurrentUrl()).toEqual(
'http://localhost:4200/#/login'
);
});
it('should contain buttons with bootstrap classes', async () => {
const buttons = await page.getAllButtons();
buttons.forEach(async (button) => {
const classAttribute = await button.getAttribute('class');
expect(classAttribute).toContain('btn');
});
});
});
问题:
有人可以帮我解决这个问题吗?我需要获取元素列表并逐页循环测试它。
对于每个只触发这些命令,而不是等到它们解决
改用for
循环
it('should contain buttons with bootstrap classes', async () => {
const buttons = page.getAllButtons();
for (let i = 0; i<buttons.length; i++) {
const classAttribute = await buttons.get(i).getAttribute('class');
expect(classAttribute).toContain('btn');
}
});
问题:
使用 CODE 部分中的以下代码,循环内的
expect
块forEach
总是路过。示例场景及其各自的测试报告截图
expect('bt bt-primary').toContain('btn');
我的要求:
- 我需要获取任何给定页面中所有按钮的列表,我应该能够通过 E2E 测试用例测试自定义 CSS 行为。
- 此测试代码应可跨不同页面测试文件重复使用。
- 已禁用 selenium 承诺管理器以使用
async/await
方法。 - 在尝试实现此目的时,我遇到了以下问题。
代码:
describe('Login form', () => {
it('should navigate to page containing login form', async () => {
await expect(browser.getCurrentUrl()).toEqual(
'http://localhost:4200/#/login'
);
});
it('should contain buttons with bootstrap classes', async () => {
const buttons = await page.getAllButtons();
buttons.forEach(async (button) => {
const classAttribute = await button.getAttribute('class');
expect(classAttribute).toContain('btn');
});
});
});
问题:
有人可以帮我解决这个问题吗?我需要获取元素列表并逐页循环测试它。
对于每个只触发这些命令,而不是等到它们解决
改用for
循环
it('should contain buttons with bootstrap classes', async () => {
const buttons = page.getAllButtons();
for (let i = 0; i<buttons.length; i++) {
const classAttribute = await buttons.get(i).getAttribute('class');
expect(classAttribute).toContain('btn');
}
});