当在盖布/斯波克调用js.exec,exec方法被标记为“空”

问题描述 投票:0回答:2

我创建了一组测试(使用盖布/斯波克)一个网站。在他们中的一个,我要访问的元素是在页面的顶部,所以,要确保是可见的,我想滚动到页面的顶部。

我使用的命令是:

browser.js.exec( 'window.scrollTo(0,0);')

或它的变体喜欢

js.exec( 'window.scrollTo(0,0);')

或其他替代,如:

js.exec( 'window.scrollBy(0,-250);')

他们没有使页面滚动,当执行我得到以下错误(这是唯一的错误,没有其他的反馈)。使用其他选项的错误消息上面列出相同(比命令本身以外):

    Condition not satisfied:
    browser.js.exec('window.scrollTo(0, 0);')
    |       |  |
    |       |  null
    |       geb.js.JavascriptInterface@4019094f
    geb.Browser@3dcac33e
        at UserCreatesCompany.Go to Home Page and click on the log to
GitHub button as user User1(UserCreatesCompany.groovy:170)

我无法解释的信息是“高管”为空。究竟意味着什么?为了让事情更有趣,在这个脚本结束我正在下面清理过程

    js.exec('window.scrollTo(0, document.body.scrollHeight);')
    DeleteButton.click()
    $("button",'data-automation-id':"button-modal-yes").click()
}

并且行之有效:页面向下滚动。因此,似乎没有一个关于一些缺失库的问题。什么我可能是做错了什么建议吗?

我使用的是不同的组件的版本是:

    groovyVersion = '2.5.4'
    gebVersion = '2.3'
    seleniumVersion = '3.141.59'
    chromeDriverVersion = '2.45'
geb
2个回答
0
投票

首先,你不应该需要不断手动滚动页面,使元素可见 - 硒的webdriver这是托换盖布时,就会自动为你做的,你开始与内容交互(点击,设定值等)。

其次,你所得到的失败是失败的断言在自动断言声明(then:expect:)斯波克块到来。这种感觉对我说,你不明白一个概念,它是核心斯波克,因此,你应该先阅读about it in the manual。它应该让你越来越清晰的失败。


0
投票

感谢您的回答。很明显:我不完全了解的不同限制了不同的块对什么是可执行文件或不征收。一旦你迷迷糊糊的手册是很清楚!

我对你的指点硒的webdriver将尽快与我交互移动到元件首先断言兴趣。这是我的理解,但它不工作。我确信有问题的元素有一个唯一的标识符,不过,如果该元素必须通过滚动起来可以发现它无法发现它。在另一方面,它定位的webdriver滚动页面向下的元素时,工作顺利。

再次感谢您的解释。我今天新学的东西!

© www.soinside.com 2019 - 2024. All rights reserved.