我想扩展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();
然而,它不适用于这个新实例
答案 0 :(得分:0)
我认为问题出在这一行 -
webdriver.WebDriver.apply(this);
尝试 -
webdriver.WebDriver.call(this);
见 -
MDN - Introduction to Object-Oriented JavaScript - Inheritance