如何使用WebdriverIO和Spectron使用Javascript应用模糊事件

时间:2018-03-20 14:47:31

标签: javascript mocha electron webdriver-io spectron

我正在开发使用Mocha的Spectron UI测试,用于在Electron上运行的应用程序。我遇到的主要问题是,Javascript不会通过工具威胁文本输入同样来自键盘的实际输入。

作为解决方法,我想在设置值之后在特定字段上应用模糊事件。这里的问题是WebdriverIO的'element'方法返回JSON对象而不是DOM元素,因此.on(“blur”)无法链接到它。

有关如何实现这一目标的任何建议吗?

提前致谢。

1 个答案:

答案 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);