在 Angular TypeScript 的 Protractor 端到端测试中,可以通过使用 async/await
和 ExpectedConditions
来避免对 browser.sleep()
的依赖。以下是一个示例代码:
import { browser, by, element, ExpectedConditions } from 'protractor';
describe('Example test', () => {
it('should do something', async () => {
// 执行一些操作,例如点击一个按钮
await element(by.css('button')).click();
// 等待某个元素出现
const elementToWait = element(by.css('.my-element'));
await browser.wait(ExpectedConditions.visibilityOf(elementToWait), 5000);
// 执行断言
expect(await elementToWait.getText()).toEqual('Expected text');
// 等待某个元素消失
await browser.wait(ExpectedConditions.invisibilityOf(elementToWait), 5000);
// 执行其他操作...
});
});
在上述示例中,使用 await
关键字来等待异步操作完成。browser.wait()
方法用于等待某个特定条件的出现或消失,使用 ExpectedConditions
来定义条件。这样可以避免使用 browser.sleep()
来等待固定时间。
通过使用 async/await
和 ExpectedConditions
,可以更加灵活和可靠地编写端到端测试代码,而无需硬编码固定的等待时间。