【问题标题】:Resolving promises in Protactor在量角器中解决承诺
【发布时间】:2018-03-28 23:37:55
【问题描述】:

我实际上对以下代码有疑问:

var promise = element(by.id("closeNotification")).isPresent(); // point A

console.log(promise);

promise.then((message) => {
    element(by.id("closeNotification")).click();
        browser.sleep(3000);
}, (errorMessage) => {                // Point B
    browser.refresh();
});

这里在A点,如果元素存在,程序运行顺利。但如果元素不存在,则会引发错误。在 B 点,如果它被拒绝,我试图处理它。如果元素不存在,请帮助我解决这个问题。 提前致谢。

【问题讨论】:

标签: promise jasmine protractor


【解决方案1】:

将点击移动到if块中,仅当元素存在时,然后执行点击

var promise = element(by.id("closeNotification")).isPresent(); // point A

promise.then((present) => {
    if(present) { // only click when present == true
        element(by.id("closeNotification")).click();
    }
    browser.sleep(3000);
}, (errorMessage) => {                // Point B
    browser.refresh();
});

【讨论】:

  • 它不起作用,原因是变量 'promise' 不是布尔类型,而是一个承诺。因此,'if' 语句不起作用。
猜你喜欢
  • 1970-01-01
  • 2014-08-08
  • 2021-12-14
  • 1970-01-01
  • 2019-07-07
  • 2016-05-04
  • 1970-01-01
  • 1970-01-01
  • 2017-06-29
相关资源
最近更新 更多