我正在开发使用Mocha的Spectron UI测试,用于在Electron上运行的应用程序。我遇到的主要问题是,Javascript不会通过工具威胁文本输入同样来自键盘的实际输入。
作为解决方法,我想在设置值之后在特定字段上应用模糊事件。这里的问题是WebdriverIO的'element'方法返回JSON对象而不是DOM元素,因此.on(“blur”)无法链接到它。
有关如何实现这一目标的任何建议吗?
提前致谢。
答案 0 :(得分:2)
我知道这是很久以前发布的,但我只是在寻找如何实现相同的目标时发现了这篇文章。我会发布我用来实现此目的的方法,以防其他人需要类似的东西。
与此同时,我得出的结论是,无法通过可用的 webdriver.io 函数直接实现这一点,但可以通过 browser.execute 方法来实现。
为了能够轻松地重用它,我创建了一个使用 browser.execute 功能的函数,然后在需要触发模糊的任何地方调用它。
function triggerBlur(elementSelector){
browser.execute((selector) => {
document.querySelector(selector).blur();
}, elementSelector);//pass the selector to the execute function
}
//example usage
let targetElementSelector = '#myInput',
targetElement = browser.$(targetElementSelector);
targetElement.setValue("new value");
triggerBlur(targetElementSelector);