Есть ли обходные пути для app.client.setValue в Spectron? - PullRequest
0 голосов
/ 11 октября 2019

В моих тестах я заполняю поля ввода (в Ant.Design https://ant.design/components/input/) методом app.client.setValue( selector, value ). Согласно https://github.com/electron-userland/spectron это должен быть метод Selenium Webdriver. И здесь говорится https://webdriver.io/docs/api/element/setValue.html метод переопределяет значение на входе. Для меня это всегда действует как addValue (то есть он посылает ключи поверх текущего значения на входе), и я не могу найти обходной путь.

Сброс ввода на клиенте непосредственно перед setValue по какой-то причине не работает ...

 async type( selector, value ) {
      await this.app.client.execute( ( selector ) => {
        const el = document.querySelector( selector );
        // When it's INPUT_NUMBER reset is 0
        el.setAttribute( "value", el.classList.contains( "ant-input-number-input" ) ? 0 : "" );
      }, selector );
      return await this.app.client.setValue( selector, value );
  }
...