我创建了一组测试(使用盖布/斯波克)一个网站。在他们中的一个,我要访问的元素是在页面的顶部,所以,要确保是可见的,我想滚动到页面的顶部。
我使用的命令是:
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'
首先,你不应该需要不断手动滚动页面,使元素可见 - 硒的webdriver这是托换盖布时,就会自动为你做的,你开始与内容交互(点击,设定值等)。
其次,你所得到的失败是失败的断言在自动断言声明(then:
或expect:
)斯波克块到来。这种感觉对我说,你不明白一个概念,它是核心斯波克,因此,你应该先阅读about it in the manual。它应该让你越来越清晰的失败。
感谢您的回答。很明显:我不完全了解的不同限制了不同的块对什么是可执行文件或不征收。一旦你迷迷糊糊的手册是很清楚!
我对你的指点硒的webdriver将尽快与我交互移动到元件首先断言兴趣。这是我的理解,但它不工作。我确信有问题的元素有一个唯一的标识符,不过,如果该元素必须通过滚动起来可以发现它无法发现它。在另一方面,它定位的webdriver滚动页面向下的元素时,工作顺利。
再次感谢您的解释。我今天新学的东西!