Protractor - это оболочка вокруг Webdriverjs
, поэтому вы должны иметь возможность использовать команду addEventListener
для добавления любого поддерживаемого браузером событий , которые будут охватывать большинство действий пользователя и запросы DOM
Обратите внимание: это поддерживается только в chrome в настоящее время
Кроме того, это экспериментальная функция в webdriver. js, поэтому необходимо добавить
var client = WebdriverJS.remote({
logLevel: 'verbose',
experimental: true, // <-- enables browser side eventhandling
desiredCapabilities: {
browserName: 'chrome'
}
});
И затем зарегистрируйте такие события, как
client
.url('http://google.com')
.addEventListener('dblclick','#hplogo', function(e) {
console.log(e.target); // -> 'id("hplogo")'
console.log(e.type); // -> 'dblclick'
console.log(e.clientX, e.clientY); // -> 239 524
})
.doubleClick('#hplogo') // triggers event
.end();
Вы можете использовать removeEventListener
, чтобы отменить регистрацию любых зарегистрированных слушателей
Равномерная обработка в среде Node.js также поддерживается, как подразумевается этим
WebdriverJS inherits several function from the NodeJS EventEmitter object
Если вы хотите также захватить сетевой трафик c, вы можете сделать это с помощью browsermob-proxy
Здесь - руководство на браузереmob-proxy