1

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

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

有什么建议可以实现吗?

提前致谢。

4

1 回答 1

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);
于 2021-02-11T07:40:45.743 回答