在Selenium webdriver javascript绑定中创建“自定义”承诺

Create "custom" promise in selenium webdriver javascript bindings

本文关键字:自定义 承诺 创建 Selenium webdriver javascript 绑定      更新时间:2023-09-26

在Selenium webdriver nodejs环境中创建"自定义"承诺的正确方法是什么?

在一个典型的nodejs应用程序中,我只会创建一个承诺,像这样包含我所有的异步调用:

return new Promise(function (resolve, reject) {
    driver.method1().then(function(p1) {
       driver.method2(p2).then(function(p2) {
          resolve(p2);
       });
    });
});

我想知道,这是否也是硒的正确方法,异步代码实际上是一些硒调用?

在查看了网络驱动程序本身的来源后,似乎在网络驱动程序中要走的方法如下:

function async(p) {
   let deferred = webdriver.promise.defer();
   driver.method1(p).then(function(r1) {
      driver.method2(r1).then(function(r2) {
         deferred.fulfill(r2));
      });
   });
   return deferred.promise;
}
async(p).then(function (result) {});

但我很想得到一些确认。