Jasmine期望返回Null

时间:2018-01-05 19:01:30

标签: typescript jasmine protractor

我正在尝试获取origin_name,修改它然后与新名称进行比较,但量角器让我回复了一个错误。为什么呢?

modificaNomeDoLote() {
        const nomeLote = pageObjectBase.obterElementoPorID('nome-lote');
        this.esperarCampoNomeEstarClicavel(nomeLote).then(() => {
            nomeLote.getText().then(nomeAtual => {
                nomeLote.clear().then(() => {
                    nomeLote.sendKeys('Teste Automatizado gerado em ' + pageObjectBase.retonarDataAtual()).then(() => {
                        pageObjectBase.teclaTab();
                        nomeLote.getText().then((nomeModificado) => {
                            expect(nomeAtual).not.toBe(nomeModificado);
                        });
                    });
                });
            });
        });
    }

错误:

  
      
  • 期待''不要''。
  •   

2 个答案:

答案 0 :(得分:0)

您不能将nomeAtual存储在变量中,这是您的问题的根源。如果你在一个大函数中进行分解,我也更喜欢它,它看起来像一团糟。此外,如果您使用typescript,您可能希望使用async-await构造来解决承诺。它看起来像:

    modificaNomeDoLote async () {
        const nomeLote: ElementFinder = pageObjectBase.obterElementoPorID('nome-lote');
        const someVariable: any = await this.esperarCampoNomeEstarClicavel(nomeLote); 
        const nomeAtual: string = await nomeLote.getText();
        await nomeLote.clear();
        await nomeLote.sendKeys(`Teste Automatizado gerado em ${pageObjectBase.retonarDataAtual()}`;
        await pageObjectBase.teclaTab();
        const nomeModificado: string = await nomeLote.getText()

        expect(nomeAtual).not.toBe(nomeModificado);
}

答案 1 :(得分:0)

实际上,量角器始终使用输入中的 getText 返回 null 。 所以我使用 getAtrribute('value')工作

https://github.com/angular/protractor/blob/master/docs/faq.md#the-result-of-gettext-from-an-input-element-is-always-empty