Использование scroll() в Webdriver.io v4
Мой код входит в бета-сайт MediaWiki, переходит на страницу настроек и пытается нажать кнопку внизу страницы.
Я пытаюсь использовать scroll() для достижения этой цели, так как работает только .click()
приведет к ошибке, аналогичной приведенной ниже. Проблема в том, что .scroll()
кажется, не имеет никакого эффекта.
Я использую версию 4 WebdriverIO.
Что я пробовал:
Я попробовал этот тест только с
elem.click()
, без какой-либо прокрутки, и это привело к сообщению, похожему на приведенное ниже, где элемент не кликабелен.Когда я запускаю код без
elem.click()
, тест проходит, но прокрутки страницы я вообще не вижу (добавляюbrowser.pause( 9000);
до конца проверить).Когда я бегу
.scroll()
и передать ему значения, такие какelem.scroll(0,500)
, страница прокручивается вниз, но недостаточно, чтобы увидеть фактический элемент.я пробовал
.moveToObject()
который, кажется, прокручивает страницу вниз, но не настолько, чтобы видеть / взаимодействовать с элементом. Я также пытался передать значения для этого, но это не сработало.
it( 'should demonstrate the scroll command on the Preferences Page ', function () {
// login
browser.url( 'https://en.wikipedia.beta.wmflabs.org/w/index.php?title=Special:UserLogin&returnto=Main+Page' );
var loginName = $( '#wpName1' );
var loginPass = $( '#wpPassword1' );
var loginBtn = $( '#wpLoginAttempt' );
loginName.setValue( 'Ephemeraltest' );
loginPass.setValue( 'vagrant123' );
loginBtn.click();
// click button at bottom of preferences page
browser.url( 'https://en.wikipedia.beta.wmflabs.org/wiki/Special:Preferences' );
var elem = $( '#ooui-php-41' );
elem.scroll();
elem.click();
});
Когда я запускаю код, сообщается об этой ошибке:
неизвестная ошибка: Элемент... не активен в точке (602, 571). Другой элемент получит сообщение click: ... running chrome. Ошибка: при обработке команды произошла неизвестная ошибка на стороне сервера. at elementIdClick("0.7032716938931156-1") - click.js:20:22
1 ответ
Вы пробовали scrollIntoView
? Если не попробовать это: selector
здесь будет '#ooui-php-41'
browser.execute(elem => elem.scrollIntoView(), browser.element(selector).value);