selenium - 使用 Protractor 方便记录

标签 selenium selenium-webdriver protractor

我正在尝试让开发人员使用 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/

相关文章:

javascript - Protractor firefox 控制台日志错误未出现

html - Selenium driver.page_source() 仅提取部分 HTML DOM

java - Selenium WebDriver——我如何知道某一行已经成功执行?

java - 无法通过 testng 运行 selenium 脚本

python selenium无法使用cookie登录youtube帐户

javascript - 确定 ElementFinder 是否与定位器匹配

selenium - 不使用browser.pause如何让E2E稳定?

java - 想要在 Selenium 中创建一个计时器并执行一些操作,直到达到定义的时间段

selenium - 如何通过保持 webDriver 处于事件状态来关闭整个浏览器窗口?

javascript - 通过将 key 发送到 Angular Material 中的 md-auto-complete Protractor 测试用例