Использование scroll() в Webdriver.io v4

Мой код входит в бета-сайт MediaWiki, переходит на страницу настроек и пытается нажать кнопку внизу страницы.

Я пытаюсь использовать scroll() для достижения этой цели, так как работает только .click() приведет к ошибке, аналогичной приведенной ниже. Проблема в том, что .scroll() кажется, не имеет никакого эффекта.

Я использую версию 4 WebdriverIO.

Что я пробовал:

  1. Я попробовал этот тест только с elem.click(), без какой-либо прокрутки, и это привело к сообщению, похожему на приведенное ниже, где элемент не кликабелен.

  2. Когда я запускаю код без elem.click(), тест проходит, но прокрутки страницы я вообще не вижу (добавляю browser.pause( 9000); до конца проверить).

  3. Когда я бегу .scroll() и передать ему значения, такие как elem.scroll(0,500), страница прокручивается вниз, но недостаточно, чтобы увидеть фактический элемент.

  4. я пробовал .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);
Другие вопросы по тегам