gpt4 book ai didi

javascript - 如何使用 Nightwatch 滚动到元素?

转载 作者:可可西里 更新时间:2023-11-01 02:00:57 24 4
gpt4 key购买 nike

我正在使用 nightwatch 对我的应用程序进行电子测试。其中一项测试失败,因为它无法滚动到我怀疑它正在测试的元素。问题是我需要滚动还是有其他方法可以做到这一点?这是我正在测试的元素:

 return this.waitForElementVisible('#myElement', 4000) //wait for it to be visible
.assert.visible('#myElement')
.click('#myElement')

该元素位于页面顶部,但测试运行器向下滚动了一点页面,并且在屏幕截图中不可见。如果需要我怎样才能滚动到这个元素?或者:我如何测试这个元素?

最佳答案

nightwatch 中有一个本地方法可以让元素进入 View 。 (一般情况下,元素应该始终从 nightwatch/selenium 滚动到 View 中。但是如果你想手动执行此操作,你可以使用 getLocationInView() :

return this.getLocationInView('#myElement')
.assert.visible('#myElement')
.click('#myElement')

Nightwatch 还支持使用 moveTo() 通过 Webdriver 协议(protocol)直接执行此操作没有任何抽象。在那种情况下,它看起来更像是:

const self = this;
return this.api.element('#myElement', (res) => {
self.api.moveTo(res.value.ELEMENT, 0, 0, () => {
self.assert.visible('#myElement');
self.click('#myElement');
})
});

(这只是我从头到尾写的,希望我没有写错)

但是对您的情况有帮助的是改变配置中的 seleniums 元素滚动行为,例如:

firefox: {
desiredCapabilities: {
browserName: 'firefox',
javascriptEnabled: true,
acceptSslCerts: true,
elementScrollBehavior: 1
}
}

默认为 0 -> 元素滚动到页面顶部

elementScrollBavior 1 -> 元素滚动到页面底部

关于javascript - 如何使用 Nightwatch 滚动到元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43059368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com