3

我的代码登录到mediawiki的 beta 站点,进入Preferences页面并尝试单击页面底部的按钮。

我正在尝试使用scroll()来实现这一点,因为仅运行.click()会导致错误,类似于下面的错误。问题是这.scroll()似乎没有任何效果。

我正在使用第 4 版的 WebdriverIO。

我试过的:

  1. 我用 just 尝试了这个测试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) 处不可点击。其他元素会收到点击:... running chrome 错误:处理命令时发生未知的服务器端错误。在 elementIdClick("0.7032716938931156-1") - click.js:20:22

4

1 回答 1

3

你试过scrollIntoView吗?如果不试试这个:selector这里是'#ooui-php-41'

        browser.execute(elem => elem.scrollIntoView(), browser.element(selector).value);
于 2019-07-14T12:36:10.187 回答