Webdriverio: clearElement, ou la chaîne vide setValue ne déclenche pas l'événement onChange

Créé le 14 mai 2015  ·  8Commentaires  ·  Source: webdriverio/webdriverio

J'utilise react js pour développer une application hybride,
et tester l'application avec appium et webdriverio.

Lorsque j'entre une valeur en utilisant la méthode setValue,
il déclenche l'événement 'onChange'.

Cependant, lorsque j'efface l'entrée à l'aide de clearElement (sélecteur) ou setValue (sélecteur, '')
il ne déclenche aucun événement.

Je ne sais pas s'il s'agit d'un problème lié à l'appium ou à la mise en œuvre du pilote Web.

J'ai résolu le problème temporairement en insérant un caractère d'espace.

Merci.

Bug🐛 Selenium Related

Commentaire le plus utile

Pour tous ceux qui recherchent sur Google à l'avenir, vous devriez pouvoir utiliser la solution de contournement: setValue(selector, [" ", "\uE003"]) , où la première valeur est un espace ou tout autre caractère, et la deuxième valeur est la représentation unicode d'une frappe de retour arrière .

Je peux confirmer que cette combinaison de valeurs déclenche l'événement onInput et l'événement onChange des entrées de formulaire.

Par exemple:

var testBrowser = webdriverio.remote({desiredCapabilities: {browserName: 'firefox'}});
var BACKSPACE_UNICODE = "\uE003";

testBrowser
  .init()
  .url('http://localhost:3000/some-page-with-a-form')
  .setValue('#my-input', [' ', BACKSPACE_UNICODE])
  .submitForm("#my-form")
  .end()

Tous les 8 commentaires

J'ai le même problème avec setValue(selector, '') . Il ne déclenche pas l'apparition d'une info-bulle.

J'ai changé mon code pour qu'il fonctionne de la même manière avec une chaîne vide et un espace blanc.

et utilisé setValue (selector, '')

juste un rond-point ...

Avec l'aide d'un utilisateur de stackoverflow, il fonctionne comme prévu en modifiant le code en

setValue(selector, ['','Tab'])

http://stackoverflow.com/questions/32057081/how-to-test-setting-a-field-to-empty-string-using-webdriverio-mocha-and-phantom

Ce bogue est-il également lié à la v4?

ce n'est pas lié à WebdriverIO, c'est un problème dans le pilote du navigateur. Ce problème n'est ouvert ici que si quelqu'un propose une solution de contournement garantissant à 100% que l'événement onChange est déclenché (en utilisant javascript sur la page).

Je ne pense pas qu'il existe une bonne solution de contournement pour cela. Fermeture.

Malheureusement setValue(selector, ['','Tab']) ne déclenche pas onChange ou onInput comme je l'avais espéré. Quelqu'un connaît-il une solution?

Pour tous ceux qui recherchent sur Google à l'avenir, vous devriez pouvoir utiliser la solution de contournement: setValue(selector, [" ", "\uE003"]) , où la première valeur est un espace ou tout autre caractère, et la deuxième valeur est la représentation unicode d'une frappe de retour arrière .

Je peux confirmer que cette combinaison de valeurs déclenche l'événement onInput et l'événement onChange des entrées de formulaire.

Par exemple:

var testBrowser = webdriverio.remote({desiredCapabilities: {browserName: 'firefox'}});
var BACKSPACE_UNICODE = "\uE003";

testBrowser
  .init()
  .url('http://localhost:3000/some-page-with-a-form')
  .setValue('#my-input', [' ', BACKSPACE_UNICODE])
  .submitForm("#my-form")
  .end()
Cette page vous a été utile?
0 / 5 - 0 notes