Если в этом вопросе мне чего-то не хватает, я думаю, простой .scrollIntoView - лучший вариант для вас. Вы можете реализовать следующие два способа:
Опция 1: Создать функцию
async function sendKeysWithScroll(requiredEle, value){
await browser.executeScript("arguments[0].scrollIntoView();", requiredEle.getWebElement());
await requiredEle.sendKeys(value);
}
const nameField = element(by.css('#name'));
await sendKeysWithScroll(nameField, "DublnDev");
Опция 2: Изменить прототип ElementFinder
конф. js
onPrepare: function () {
//Add new prototype which scrolls into view before entering text
require("protractor").ElementFinder.prototype.sendKeysWithScroll = async function (value) {
await browser.executeScript("arguments[0].scrollIntoView();", this.getWebElement());
await this.sendKeys(value);
}
}
spe c. js
const nameField = element(by.css('#name'));
await nameField.sendKeysWithScroll("DublinDev");