javascript - 如何使用具有异步/等待功能的守夜人?
问题描述
我正在使用 nightwatch 测试框架来测试 的某些功能,<input />
但它在比赛问题上失败了。
我需要测试什么
- 向输入文本添加一个值:
xxxx
. - 按
backspace
4 次。 - 断言
input
具有价值''
。
但我知道它的input
价值是xx
:
错误:Expected element <#inputElement> to have value equal: "" - expected "equal ''" but got: "xx"
"type 4 chars and use backspace to clear the input": browser => {
searchBox.waitForElementVisible("@input")
.click("@input")
.setValue("@input",'xxxx');
for (let i = 0; i < 4; i++) {
await browser.keys(browser.Keys.BACK_SPACE);
}
searchbox.expect.element("@input").value.to.equal("");
searchbox.click("@input");
searchbox.expect.element("@input").value.to.equal("");
browser.end();
},
这导致了结论,即 for 循环在input
清除之前执行,然后前进到断言。我尝试了相同的测试,async/await
但我再次遇到相同的错误。我想念什么吗?
我用 async/await 测试它,如下所示:
"type 4 chars and use backspace to clear the input": async browser => {
searchBox.waitForElementVisible("@input")
.click("@input")
.setValue("@input",'xxxx');
for (let i = 0; i < 4; i++) {
await browser.keys(browser.Keys.BACK_SPACE);
}
await searchbox.click("@input");
await searchbox.expect.element("@input").value.to.equal("");
await browser.end();
},
欢迎任何帮助。
解决方案
你不需要await
第一行代码吗?
await searchBox.waitForElementVisible("@input")
.click("@input")
.setValue("@input",'xxxx');
我认为它与正在输入的字符并行退格四次,其中两个是在发送最后一个退格后输入的。
推荐阅读
- ios - 用“const 常量”声明变量的目的是什么?
- python - 在 Django 中迁移和创建超级用户后出现“没有这样的表:accounts_user”
- html - 如何用我的图标来满足页面的宽度?
- python - Python 多层网页抓取
- c++ - sf::Text 不显示?
- mariadb - 无法在 Mariadb 中使用函数调用添加约束检查
- javascript - 条码阅读器扫描的不可读条码
- nginx - Nginx 代理覆盖默认 HTML 文件
- r - 如何正确地将带引号的字符串作为 URL 输入的一部分传递给 httr:GET()?
- python-2.7 - 如何使用 python 2.7 将图像上传到谷歌云存储