无法添加自定义命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法添加自定义命令相关的知识,希望对你有一定的参考价值。
我想在打字稿webdriverIO项目中创建自定义命令。但是无论我做什么,该命令总是以错误结尾:TypeError:browser.waitAndClick不是一个函数。基本上,我想添加与webdriverIO文档中提到的功能相同的功能。我正在从我的规格中的beforeAll()中添加它。
import { DEFAULT_TIMEOUT } from "../constants";
class CustomCommand {
private static alreadyAdded = false;
static addCommands(){
if(!this.alreadyAdded) {
browser.addCommand('waitAndClick', (el: WebdriverIO.Element) => {
el.waitForDisplayed({timeout: DEFAULT_TIMEOUT});
el.click();
}, true);
browser.addCommand('waitAndSetValue', (el: WebdriverIO.Element, text: string) => {
el.waitForDisplayed({timeout: DEFAULT_TIMEOUT});
el.setValue(text);
}, true);
this.alreadyAdded = true;
}
}
}
export default CustomCommand;
并且我从规范的beforeAll()调用此addCommands()函数。但没有运气!
答案
欢迎使用堆栈溢出!
请注意,根据文档here,webdriverio中没有'beforeAll'挂钩。如果在挂机前调用它,它应该可以工作。
另一答案
休闲频道中的一位好人帮我找出了确切原因。实际上,我忽略了doc中的某些内容:If you register a custom command to the browser scope, the command won’t be accessible for elements. Likewise, if you register a command to the element scope, it won’t be accessible in the browser scope
。原来这就是原因。现在已解决。
以上是关于无法添加自定义命令的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程