我正在基于量角器+硒+茉莉花进行e2e测试。我有以下代码

    describe("test google search box", function () {
    function firstPart() {
        console.log("before starting");
        browser.get("http://www.google.com");
        console.log("after running");
    }

    function secondPart() {
        console.log("begin validation");
        var searchBox = element(By.id('kw'));
        **expect(searchBox.getAttribute("id")).toEqual("kw1"); //this is a intentional failure**
        console.log("after validation");

    }


    beforeEach(function () {
        return browser.ignoreSynchronization = true;
    });

    it("if search box exists", function () {
        var flow = browser.controlFlow();
        protractor.promise.all(flow.execute(firstPart), flow.execute(secondPart));
    });
});


我不想执行'console.log(“验证后”);'因为在之前的步骤中故意造成了失败。怎么做?

谢谢你的帮助。

最佳答案

如果只想记录已解决的promise,则将记录放在promise中:

function log(message) {
  browser.controlFlow().execute(function(){
    console.log(message);
  });
}

function firstPart() {
    log("before starting");
    browser.get("http://www.google.com");
    log("after running");
}

function secondPart() {
    log("begin validation");
    var searchBox = element(By.id('kw'));
    expect(searchBox.getAttribute("id")).toEqual("kw1"); //this is a intentional failure**
    log("after validation");
}

it("if search box exists", function () {
    firstPart();
    secondPart();
});


输出:

Started
before starting
after running
begin validation
F

Failures:
...

10-05 20:41
查看更多