为什么不是在Protractor中使用executeScript创建的对象

时间:2015-02-24 12:28:12

标签: javascript angularjs protractor angularjs-e2e

我在测量角度js应用程序的量角器脚本中的describe内有此代码。

beforeEach(function() {
  browser.get('index.html#/device_list');
  browser.executeScript("chrome.bluetooth = {};");
  browser.executeScript("console.log('test')");
  browser.executeScript("alert('test')");
});

如果没有此代码,测试将按预期运行并失败。当我添加此代码并运行脚本时,未创建对象,则不会打印控制台日志,但会创建警报(并按预期引发异步错误)。

我在没有警报的情况下尝试了它,它们仍然没有对象或日志。

这是为什么?是否可以创建一个简单的对象,可以在量角器中使用executeScript进行测试?如果没有,那么还有另一种不涉及创建服务的方法吗?

我在Protractor脚本中使用此代码来查找控制台日志。

browser.manage().logs().get('browser').then(function(browserLog) {
    if(browserLog.length > 0) {
        console.log(browserLog);
    }
});

2 个答案:

答案 0 :(得分:4)

日志记录仅显示错误级别日志。

你需要这样做:

browser.executeScript("console.error('test')");

答案 1 :(得分:1)

executeScript在浏览器中运行。如果您希望在节点进程中看到日志,那么它将不在那里。我会在你浏览器的日志中。