我正在尝试让开发人员使用 Protractor 编写 Selenium 测试时更容易进行日志记录。
我正在看selenium-webdriver/lib/logging我正在尝试找出如何制作一个方便的日志系统。
这是一个示例规范:
it('should NOT show welcome before login', () => {
// convenient log here
expect(homepage.logo.isPresent()).toBe(true);
// log message that would occur after expect
expect(homepage.welcomeText.isPresent()).toBe(false);
// final log message
});
我不太确定如何解决这个问题。
我试图避免必须对每条日志消息执行(如下)操作。
homepage.welcomeText.isPresent().then(() => console.log('foo bar'));
最佳答案
有一个 npm 包 - log4js-protractor-appender这将解决您的问题。它是专门为基于 Protractor 的环境构建的,它将所有记录器命令放入 Protractor 控制流中,并在记录之前解决 Protractor promise 。
由于 Protractor 执行控制流中的所有命令,并且所有非 Protractor 命令不会按照我们喜欢的顺序执行。因此,定期记录需要我们付出额外的努力,将非 Protractor 命令链接到 Protractor 命令
示例:
browser.getCurrentUrl().then(function _logValue(url){
logger.info("The url is" + url);
});
但是log4js-protractor-appender可以直接编写类似的内容 - browser.logger.info('Displayed text is:', browser.getCurrentUrl());
有关如何实现此功能的更多详细信息 - 请查看我的博客文章 - How to implements logs for Protractor/JavaScript based Test Automation Frameworks
关于selenium - 使用 Protractor 方便记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42725348/