如何使用TestCafe进行滚动操作?
我尝试过window.scroll()
和window.scrollTo()
,但出现错误提示window未定义。
如何使用TestCafe进行滚动操作?
我尝试过window.scroll()
和window.scrollTo()
,但出现错误提示window未定义。
更新:
在v1.14.0及更高版本中,您可以使用以下滚动方法:t.scroll、t.scrollBy和t.scrollIntoView。
旧回答:
在您的情况下,您可以创建自己的ClientFunction
:
import { ClientFunction } from 'testcafe';
fixture `Fixture`
.page `https://github.com/DevExpress/testcafe`;
const scroll = ClientFunction(function() {
window.scrollBy(0,1500);
});
test(`test`, async t => {
await scroll();
await t.wait(1000);
});
t.hover
操作示例:
// scroll to the "#some-element-scroll-to" element
await t.hover(Selector('#some-element-scroll-to'));
我在 Mac 上遇到了类似的问题,并使用以下代码将页面中已知元素滚动到视图中。
import { ClientFunction, Selector } from 'testcafe';
const scrollIntoView = ClientFunction( (selector: Selector) => {
const element = selector() as unknown as HTMLElement;
element.scrollIntoView();
});
fixture`HTMLElement`
.page('https://example.com');
test('Scroll element into view', async t => {
const bottomOfPage = Selector('#bottom-div');
await scrollIntoView(bottomOfPage);
});
参考:类型转换页面元素
.typeText('#idNotVisible', 'John Smith')
或者
.click('#idNotVisible')