我目前正在发现自动化工具Cypress,我在最基本的功能方面遇到了问题。
我想做的是访问此URL:https://www.unicef.fr/se-connecter/
单击输入的密码,然后键入密码。
但每当我的代码要输入时,屏幕就会向下滚动,我会收到一条错误消息,说找不到密码输入。
这是我正在使用的代码:
cy.visit('https://www.unicef.fr/se-connecter/');
cy.get('#js-account-login-input-id').type("01223442342");
你知道我该如何停止自动滚动吗?或者我做错了什么?
本质上,您需要向类型命令添加一个选项
cy.get('#js-account-login-input-id')
.type("01223442342", {scrollBehavior: 'center'})
我看到两件事阻碍了对输入的访问
- 一个带有模式背景的cookie弹出窗口首先覆盖了输入对话框
.type()
命令将输入放置在屏幕顶部,但将其放置在隐藏的菜单下方
这是完整的测试,我添加了cy.viewport()
只是为了更好地显示。
cy.viewport(1500,1000)
cy.visit('https://www.unicef.fr/se-connecter/')
cy.contains('button', "C'est OK pour moi").click() // accept cookies
cy.get('#js-account-login-input-id')
.type("01223442342", {scrollBehavior: 'center'})
还有一点需要注意的是,如果cookie弹出窗口有时没有出现(可能取决于您所在的地区),您需要有条件地处理它——也就是说,只有在4秒内出现时才点击。
为此,请将cyprus if包添加到项目中。
然后在cookie按钮单击()之前添加.if()
命令。
cy.contains('button', "C'est OK pour moi")
.if() // does cookie button show?
.click() // accept cookies
我打开了网站,但密码字段与您的id选择器不匹配。我在里面发现了js-account-login-input-password
。
您可以通过其他方式选择密码框,以避免使用id。
cy.get('input[type=password]')