javascript - 量角器脚本太快,覆盖上的元素未处理
问题描述
以下是我在规范中的代码。Toolbox 是一个常用操作的库,例如 sendKeys() 等。
async enterProjectDetails() {
toolbox.enterText(this.projectTitle, "001 Project Name");
toolbox.enterText(this.projectDescription, "New project");
await toolbox.click(this.someTextBox);
//on clicking this text box an overlay is displayed
//Used the below but none of them worked
// toolbox.waitUntilVisible(this.chkBoxOnOverlay);
// var EC = protractor.ExpectedConditions; <--- didn't work
// browser.driver.wait(function () {
// browser.wait(EC.visibilityOf(this.chkBoxOnOverlay), 10000);
// return elem;
// });
// var EC = protractor.ExpectedConditions; <--- didn't work
// browser.wait(EC.presenceOf(element(by.xpath("(//li[@class='ng-star-inserted']//mat-checkbox)[1]"))), 5000);
// await toolbox.click(this.chkBoxOnOverlay);
toolbox.click(this.cancel); <--- cancel on the overlay is also skipped
//MORE CODE ALL OF WHICH ARE EXECUTED BY HIT OR MISS
}
脚本继续在覆盖下方的文本框中输入值并退出。要在叠加层上输入的值是必填字段,如果不检查某些值,我无法从页面继续。
有什么办法可以减慢量角器的速度?所有的console.logs也是同时执行的(从代码的第一行到最后一行。)这是因为JS的异步特性吗?如何避免这种情况?
解决方案
你可以使用这样的 Promise 按想要的顺序执行它们:
toolbox.enterText(this.projectTitle, "001 Project Name").then(function () {
toolbox.enterText(this.projectDescription, "New project").then(function(){
toolbox.click(this.someTextBox);
});
});
推荐阅读
- pandas - 有条件的分组和删除整个组
- matlab - Matlab中图像的提取
- python - psycopg2.OperationalError:SSL SYSCALL 错误:在 Flask/SQLAclemy/Celery + PostgreSQL 应用程序上检测到 EOF
- visual-studio - CMake Visual Studio 生成器表达式 RelWithDebInfo
- jmeter - Jmeter SSHMON 样本收集器的问题(插件未解析接收到的数据)
- arrays - 带有对象引用和自定义值的 Moongose 数组
- c++ - 使用 C++ 计算 926 以下的所有 7 和 11 的倍数之和
- php - 如何用第二个数组合并和覆盖第一个数组?
- python - SyntaxError:无效的语法 python nltk
- svelte - Sapper/svelte - 集成引用“窗口”和“文档”的旧 js 库