扩展webdriver.WebDriver函数

时间:2016-03-22 19:39:28

标签: javascript selenium

我想扩展selenium webdriver.WebDriver,函数使我能够记录命令的输出,例如

WebdriverReporter.prototype.sendKeys = function(keys){
 //call original method + call my api to store the keys
}

我正在尝试让我的webdriverreporter继承自webdriver但是我正在努力创建一个新的webdriver实例。

代码:

var util = require('util');
var webdriver = require('selenium-webdriver');


var WebdriverReporter = function(){
  webdriver.WebDriver.apply(this);
  console.log("constructor: webdriver reporter");
};

util.inherits(WebdriverReporter, webdriver.WebDriver);

var a = new WebdriverReporter();

console.log("test", a instanceof webdriver.WebDriver);

错误:

constructor(session, executor, opt_flow) {
             ^

TypeError: Class constructors cannot be invoked without 'new'

我通常使用以下方法创建一个新的webdriver:

new webdriver.Builder()
    .forBrowser(config.browser.chrome.browserName)
    .withCapabilities(chromeCapabilities)
    .build();

然而,它不适用于这个新实例

1 个答案:

答案 0 :(得分:0)

我认为问题出在这一行 -

webdriver.WebDriver.apply(this);

尝试 -

webdriver.WebDriver.call(this);

见 -

Node.JS Docs - util.inherits

MDN - Introduction to Object-Oriented JavaScript - Inheritance