在Webdriver.io v4中使用scroll()

时间:2019-07-13 17:04:32

标签: javascript selenium webdriver-io wdio-v4

我的代码登录到 mediawiki 的Beta版站点,转到“首选项” 页面,然后尝试单击页面底部的按钮。

我正在尝试使用scroll()来实现此目的,因为仅运行.click()会导致错误,类似于以下内容。问题在于.scroll()似乎没有任何作用。

我正在使用WebdriverIO的版本4。

我尝试过的事情:

  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)不可点击。其他元素将收到   点击:...正在运行chrome错误:   处理命令时发生未知的服务器端错误。       在elementIdClick(“ 0.7032716938931156-1”)-click.js:20:22

1 个答案:

答案 0 :(得分:1)

您是否尝试过scrollIntoView?如果没有尝试,请执行以下操作:selector这里就是'#ooui-php-41'

        browser.execute(elem => elem.scrollIntoView(), browser.element(selector).value);