Protractor: L'appel de element.sendKeys () semble ne pas envoyer toutes les clés

Créé le 11 avr. 2014  ·  56Commentaires  ·  Source: angular/protractor

Je fais les deux tests suivants:

   it("Should be able to populate the firstname field", function () {

        expect(capturePageModel.findFirstNameFieldValue()).toEqual("");
        capturePageModel.setFirstNameFieldValue("Adam");
        expect(capturePageModel.findFirstNameFieldValue()).toEqual("Adam");

    });

    it("Should be able to populate the lastname field", function () {
        expect(capturePageModel.findLastNameField()).toEqual("");
        capturePageModel.setLastNameFieldValue("Parrish");
        expect(capturePageModel.findLastNameField()).toEqual("Parrish")
    });

Lorsque j'exécute les deux tests dans le même bloc describe , je vois définitivement que le deuxième test envoie uniquement la valeur "sh" de la valeur "Parrish" que je transmets. Ainsi, le test échoue.

Cependant, chaque test fonctionne correctement tout seul. J'essaie d'utiliser PageObjects pour écrire quelques documents sur la façon dont cela pourrait fonctionner, mais curieux de savoir si vous avez vu quelque chose comme ça arriver.

Exemple simple de mes fonctions setter et getter dans mes PageObjects

this.setLastNameFieldValue = function( value ) {

    var lastNameElement = element(by.model('presubmitUser.lastName'))
    lastNameElement.sendKeys( value );

}

this.findLastNameField = function() {
    var firstNameElement = element(by.id('lastName'))
    return firstNameElement.getAttribute('value');
}

Le champ du prénom est identique au champ du nom.

needs investigation external bug needs to be filed

Commentaire le plus utile

une autre solution de contournement: passez des caractères individuels à sendKeys:
'blah'.split('').forEach((c) => element.sendKeys(c))

Tous les 56 commentaires

Vous ne savez pas ce qui se passe ici - pourriez-vous partager la sortie du test?

Starting selenium standalone server...
Selenium standalone server started at http://192.168.1.16:59995/wd/hub
....F

Failures:

  1) As a user I want to be able to register as a new candidate Should be able to populate the lastname field
   Message:
     Expected 'sh' to equal 'Parrish'.
   Stacktrace:
     Error: Failed expectation
    at null.<anonymous> (/NEOSAVVY/src/<snip>/frontend/src/test/resources/integration/specs/register-new-candidate-spec.js:37:54)

Finished in 2.69 seconds
5 tests, 7 assertions, 1 failure

Notez que dans le test sendKeys, j'envoie le texte "Parrish" mais la seule valeur qui le rend dans l'entrée est "sh" Je voyais que parfois ce serait "rrish" ou "rish" ce qui implique une sorte de condition de course . J'ai essayé quelques approches de type sleep () / wait () mais cela n'a tout simplement pas fonctionné.

Huh, c'est très étrange - je n'ai jamais vu quelque chose comme ça. Je suppose que quelque chose de drôle se passe dans l'application - quand ils sont dans le même bloc de description, il n'y a pas de rechargement de page entre les tests?

La chose la plus proche dont je me souvienne est que nous avons eu un problème lors du test de docs.angularjs.org où sendKeys n'enverrait rien après un '/'. Il s'est avéré que la barre de recherche volait le focus sur '/', donc c'était en fait un vrai bug avec la page. Est-il possible que quelque chose comme ça se passe?

Je peux certainement simplifier ma page, il y en a beaucoup, nous essayons de sauvegarder les données au fur et à mesure qu'un utilisateur les tape. Nous avons une directive de style ng-blur qui envoie des données à la pression d'une touche. Je m'attendrais toujours à voir les premières clés envoyées par rapport aux dernières clés. Vous avez probablement raison. Je vais creuser davantage dans ce que nous faisons pour éliminer la variabilité sur ma page pour être sûr de cela.

Je pense que j'ai peut-être le même problème: sendKeys() semble interpréter les lettres e et r comme des caractères de contrôle plutôt que des caractères normaux:

var email = $('input#email');

// Sending 'e' or 'E' deletes the previous character
email.sendKeys('abcde'); // => Types 'abcd' then deletes the 'd'
email.sendKeys('ABCDE'); // => Types 'ABCD' then deletes the 'D'

// Sending 'r' moves the focus to the next input element
email.sendKeys('abcrabc'); // => Types 'abc' in the email input, switches focus to the password input, and types 'abc'

// Sending 'R' does nothing
email.sendKeys('ABCR'); // => Types 'ABC'

Voici une page simple que j'ai utilisée pour isoler le problème:

<!DOCTYPE html>
<html ng-app>
  <head>
    <title>Sign In</title>
    <meta http-equiv="content-type" content="charset=UTF8"></meta>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.6/angular.min.js"></script>
  </head>
  <body>
    <div id="main">
      <form>
        <div>
          <input id="email" type="email" title="Email" placeholder="Email" required="" name="email"></input>
        </div>
        <div>
          <input id="password" type="password" title="Password" placeholder="Password" name="password"></input>
        </div>
        <div>
          <button type="submit">Sign In</button>
        </div>
      </form>
    </div>
  </body>
</html>

Mon système:

ubuntu 13.10
rapporteur 0.22.0
sélénium-webdriver 2.41.0
chromedriver 2.9
navigateur chrome 33.0.1750.152

Intéressant, j'ai la même configuration mais Mac et Chrome Version 34.0.1847.116, et je ne vois pas ce comportement fou. Laissez-moi essayer une boîte Linux.

Je l'ai essayé sur un Mac avec la version chrome 34.0.1847.116 et cela a bien fonctionné. Je mets à niveau vers Ubuntu 14.04 et je verrai si le problème persiste.

@ihough et @neosavvy J'ai essayé cela il y a quelques mois et

@hankduan Je pense que dans mon cas, le problème est en fait un problème de transfert X11 via ssh. Ma boîte Ubuntu est une machine vagabonde sans tête basée sur chef / ubuntu-13.10 . Voici ma configuration et mon test:

Ubuntu 13.10 (machine vagabonde sans tête basée sur chef / ubuntu-13.10 )
rapporteur 1.0.0-rc1
sélénium-webdriver 2.42.1
chromedriver 2.10
navigateur chrome 34.0.1847.116

describe('sendKeys()', function() {
  browser.get('http://localhost:80');

  var email = element(by.id('email'));
  var password = element(by.id('password'));

  beforeEach(function() {
    email.clear();
    password.clear();
  });

  it('should be able to type "abcde"', function() {
    email.sendKeys('abcde');
    expect(email.getAttribute('value')).toEqual('abcde');
    expect(password.getAttribute('value')).toEqual('');
  });

  it('should be able to type "ABCDE"', function() {
    email.sendKeys('ABCDE');
    expect(email.getAttribute('value')).toEqual('ABCDE');
    expect(password.getAttribute('value')).toEqual('');
  });

  it('should be able to type "abcrabc"', function() {
    email.sendKeys('abcrabc');
    expect(email.getAttribute('value')).toEqual('abcrabc');
    expect(password.getAttribute('value')).toEqual('');
  });

  it('should be able to type "ABCRABC"', function() {
    password.sendKeys('ABCRABC');
    expect(password.getAttribute('value')).toEqual('ABCRABC');
    expect(email.getAttribute('value')).toEqual('');
  });
});

Je peux reproduire le problème si je transfère X11 via ssh vers ma machine locale:

vagrant<strong i="17">@vagrant</strong>:/vagrant$ node_modules/protractor/bin/protractor protractor-conf.js 
Using ChromeDriver directly...
FFFF

Failures:

  1) sendKeys() should be able to type "abcde"
   Message:
     Expected 'abc' to equal 'abcde'.
   Stacktrace:
     Error: Failed expectation
    at null.<anonymous> (/vagrant/spec.js:14:41)

  2) sendKeys() should be able to type "ABCDE"
   Message:
     Expected 'ABC' to equal 'ABCDE'.
   Stacktrace:
     Error: Failed expectation
    at null.<anonymous> (/vagrant/spec.js:20:41)

  3) sendKeys() should be able to type "abcrabc"
   Message:
     Expected 'abc' to equal 'abcrabc'.
   Stacktrace:
     Error: Failed expectation
    at null.<anonymous> (/vagrant/spec.js:26:41)

  4) sendKeys() should be able to type "abcrabc"
   Message:
     Expected 'abc' to equal ''.
   Stacktrace:
     Error: Failed expectation
    at null.<anonymous> (/vagrant/spec.js:27:44)

  5) sendKeys() should be able to type "ABCRABC"
   Message:
     Expected 'ABC' to equal 'ABCRABC'.
   Stacktrace:
     Error: Failed expectation
    at null.<anonymous> (/vagrant/spec.js:32:44)

  6) sendKeys() should be able to type "ABCRABC"
   Message:
     Expected 'ABC' to equal ''.
   Stacktrace:
     Error: Failed expectation
    at null.<anonymous> (/vagrant/spec.js:33:41)

Mais le problème ne se produit _pas_ si j'utilise xvfb pour exécuter le navigateur chrome sans tête:

vagrant<strong i="21">@vagrant</strong>:/vagrant$ export DISPLAY=:10 && Xvfb :10 -screen 0 1366x768x24 -ac &
[1] 2044
vagrant<strong i="22">@vagrant</strong>:/vagrant$ node_modules/protractor/bin/protractor protractor-conf.js 
Using ChromeDriver directly...
....

Finished in 8.108 seconds
4 tests, 8 assertions, 0 failures

Cela peut être un problème entre X11 / webdriver (ou un autre aspect de X11) au lieu du rapporteur.

Pour tester cela (et comme je n'ai pas cet environnement configuré), pouvez-vous essayer d'envoyer des commandes directement via le pilote Web au lieu de la logique du rapporteur.

c'est à dire

  it('should be able to type "abcde"', function() {
    var driver = protractor.getInstance();
    var email = driver.findElement(by.id('email')); // This returns a raw WebElement from Webdriver
    email.sendKeys('abcde');
    email.getAttribute('value').then(function(value) { // This does not use the protractor "expect" wrapper
      assert.equal(value, 'abcde');
    });

  });

@hankduan a essayé d'utiliser WebDriver et des assertions non

Vous devrez peut-être poursuivre cela avec X11 ou un pilote Web.

Essayez de leur montrer du code qui est purement Webdriver. Voir https://code.google.com/p/selenium/wiki/WebDriverJs.

Merci

Clôture de ce problème car ce n'est pas un problème de rapporteur.

Je viens de tomber sur ce problème avec les derniers Protractor et SauceLabs. SauceLabs recevait les instructions correctes, c'est-à-dire définir la valeur sur "The Dark Knight", mais seul "TheDark" (et parfois même des séquences de caractères différentes) se retrouvait dans le champ de texte, suivi d'une instruction de retour qui aboutissait à une navigation de page. Vous pouvez même voir ce comportement dans les enregistrements de SauceLabs (voir les trois dernières captures d'écran) [1].

Après avoir bidouillé pendant un certain temps, je suis simplement passé à Firefox à partir de Chrome et je ne voyais plus de problèmes. Bien que ce ne soit pas une solution générale, c'était suffisant pour mon cas d'utilisation d'atelier.

[1] https://saucelabs.com/tests/d86fcf7d99924643b20845a153c7d903

@bripkens Êtes-vous sûr que ce n'est pas votre application qui le fait? Il semble que "The Dark Knight" est envoyé (vous pouvez le voir tapé), mais après avoir appuyé sur le message, "TheDark" apparaît.

Je suppose que votre application coupe la sortie à une longueur spécifique ou quelque chose.

@hankduan Il ne fait en fait rien d'intéressant avec l'entrée [1, 2]. De plus, les tests fonctionnent avec Firefox sur SauceLabs et localement aussi avec le dernier Chrome.

[1] https://github.com/codecentric/movie-database-node/blob/master/client/js/controller.js#L26 -L32
[2] https://github.com/codecentric/movie-database-node/blob/master/client/partial/movies/_form.html#L10

Même problème ici, ma configuration:

OS:        MAC OS X 'Mavericks'
node -v:   v0.10.29
npm -v:    1.4.16

Parfois, l'entrée est entièrement saisie, à d'autres moments, seuls un ou deux caractères le font.

@bripkens Pouvez-vous essayer de remplacer element(...).sendKeys("The Dark Knight"); par quelque chose de purement webdriver pour voir si le même comportement est valable? En outre, pouvez-vous mettre une version réduite de votre application / test / configuration dans son propre référentiel pour que je la reproduise?

@wayneseymour Pouvez-vous fournir plus d'informations? c'est-à-dire navigateur (c'est-à-dire fantôme), code-spécifications, code-application.

Sûr.

Dernier chrome .
protractor-1.2.0

Également dans le modèle page object , mais en voici l'essentiel:

return $('some css classes').sendKeys('some-text-with-hyphens-and-[brackets,and-a-comma]'); // promise chain

Je ne pense pas que l'envoi d'une chaîne avec des tirets, des crochets et des virgules reproduira cela de manière générale. Pouvez-vous également fournir l'application que vous utilisez? (À moins que vous n'obteniez ce comportement en envoyant cette chaîne à une application angulaire --ie www.angularjs.org, par quel cas, faites-le moi savoir également)

haha, j'aimerais pouvoir vous envoyer un lien.
Mais, c'est l'application propriétaire de mon entreprise. Vous savez comment ça se passe.
Je pense qu'il y a peut-être juste une condition de course que je peux cerner. Je me suis endormi et cela fonctionne ... mais cela ne passera pas la révision du code! :)

@wayneseymour Faites-moi savoir ce que vous trouvez. Il y a eu quelques rapports sur ce problème, mais personne jusqu'à présent n'a été en mesure de fournir un exemple qui me permet de reproduire encore

fera, merci mec!

+1 obtenez ceci sur une application propriétaire via chromedriver / SauceLabs en entrant '01234569789', et avec des parties subdivisées de cette chaîne. Le résultat est généralement «0123» ou similaire, avec la dernière partie de la chaîne manquante.

Le chromedriver local fonctionne sans faute. Essaiera de dupliquer / couper le code et d'obtenir un test d'échec.

Eu le même problème. D'une manière ou d'une autre, en appelant element.clear () avant element.sendKeys (), même si l'entrée était initialement vide, je l'ai résolu.

D'innombrables permutations de sendKeys() échoué, j'ai donc contourné le problème de l'échec sur Saucelabs comme suit:

var inputSelector = '.create-search-input';
browser.executeScript('window.jQuery("' + inputSelector + '").val("12345678A123456")');
browser.executeScript('angular.element(window.jQuery("' + inputSelector + '")).triggerHandler("input")');

Avoir un problème similaire avec le rapporteur v1.3.1 avec Chrome (38.0.2) ou Safari (7.0.5), entraînant des délais d'expiration, c'est probablement leur bogue, car Firefox et IE fonctionnent tous les deux correctement.

Le test est assez simple:

browser.get('https://localhost/');
element(by.id('email')).sendKeys('a');

Le mode détaillé affiche le journal pour le cas Safari:

16:01:56.385 INFO - Executing: [find elements: By.id: email])
16:01:56.579 INFO - Done: [find elements: By.id: email]
16:01:56.620 INFO - Executing: [send keys: 0 [[SafariDriver: safari on MAC (null)] -> id: email], [a]])
16:02:24.344 INFO - Executing: [delete session: 280366b7-a77a-4a98-8903-1482987925ff])
16:02:28.302 WARN - Exception thrown
org.openqa.selenium.TimeoutException: Timed out awaiting response to command "sendKeysToElement" after 30001 ms (WARNING: The server did not provide any stacktrace information)

Problème associé possible: https://code.google.com/p/selenium/issues/detail?id=6537&q=safaridriver&sort=-summary&colspec=ID%20Stars%20Type%20Status%20Priority%20Milestone%20Owner%20Summary

Avec Chrome cependant, c'est bien pire, car non seulement cela n'affecte pas l'entrée, mais il ne ferme pas le navigateur (et même une fermeture régulière n'aide pas, je dois utiliser killall)

16:14:02.971 INFO - Executing: [find elements: By.id: email])
16:14:02.993 INFO - Done: [find elements: By.id: email]
16:14:03.031 INFO - Executing: [send keys: 0 [[ChromeDriver: chrome on MAC (b41eeee0117fb5c3cefa2505115eec09)] -> id: email], [a]])
16:14:25.765 INFO - Executing: [delete session: 8ce3e2be-efc2-4bb8-9970-b55754ded82b])

Mais executeScript () avec jquery suggéré par @sublimino fonctionne bien, bien que cela signifie que je ne peux pas utiliser les sélecteurs natifs by.model, ce qui est dommage. Mais je peux émuler cela avec ..
browser.executeScript('return $("input[ng-model=\'credentials.email\']").val("sdfwef");');

Avoir des problèmes avec sendKeys() où 5 est traité comme un retour arrière et 6 termine simplement le processus d'envoi des clés à l'entrée.

Ex)
elem.sendKeys (58801) donnerait 8801 dans l'entrée
elem.sendKeys (85801) donnerait 801 dans l'entrée
elem.sendKeys (88601) donnerait 88 dans l'entrée

Cependant, si je l'exécute sur Windows plutôt que Linux (via Sauce Labs), cela fonctionne très bien. Je pense que leurs clés sont mappées différemment pour quelle que soit la version de Linux Sauce utilisée et c'était mon problème.

Oui, pouvez-vous vérifier le mappage. Cela ne semble pas être un problème général.

J'ai ce problème en utilisant chromedriver indépendamment de l'angulaire utilisé. phantomjs ne cause pas les mêmes problèmes.

Avoir des problèmes avec .sendKeys ()

element.all (by.tagName ('mon-texte')). get (0)
.element (par.tagName ('div'))
.element (by.tagName ('input')) .sendKeys ("Bonjour");

Ça me donne
Message:
ElementNotVisibleError: élément non visible

Mais si je fais
expect (element.all (by.tagName ('mon-texte')). get (0)
.element (par.tagName ('div'))
.element (by.tagName ('input')) .isPresent ()) .toBeTruthy ();
il passe le test

Une idée sur pourquoi je ne peux pas envoyer de clés à l'élément ??
Toute aide serait grandement appréciée, merci!

Il peut être présent mais pas visible. Quoi qu'il en soit, posez ce type de question sur Stack Overflow.

Solution : définissez la valeur à l'aide de JS (exécutez simplement $("#your-id").val("your-value") )

@DenisGorbachev J'utilise donc le JavaScript ci-dessus pour définir l'entrée, mais il semble que la liaison (ng-model) ne prend pas en compte le changement. Une idée comment forcer la détection de changement dans Angular2?

Cela pourrait être lié à https://bugs.chromium.org/p/chromedriver/issues/detail?id=1037
cela se produit sur des connexions distantes (par exemple en utilisant vnc)

@DenisGorbachev votre solution de contournement avec $("#your-id").val("your-value") ne semble plus fonctionner. Il dit que .val n'est pas une fonction. Est-ce exact? (en utilisant la dernière version du rapporteur)

une autre solution de contournement: passez des caractères individuels à sendKeys:
'blah'.split('').forEach((c) => element.sendKeys(c))

@dodoshanti merci pour la solution de contournement! Cela ralentit un peu le processus mais au moins ça marche :)

@dodoshanti , @foch
Le problème se produit car un test précédent utilise les touches de modification et les touches de modification ne sont pas relâchées.

De par leur conception, les touches de modification (SHIFT, CONTROL, ALT, META) sont avec état, et une fois qu'elles sont enfoncées, elles restent dans l'état enfoncé sauf si

1) Une des touches de modification est à nouveau enfoncée, ou
2) webDriver.Key.NULL est passé

La solution la plus simple est donc d'utiliser ces touches comme celle-ci

browser.actions()
      .sendKeys(protractor.Key.ALT)
      .sendKeys('s')
      .sendKeys(protractor.Key.NULL) // Passing Null is extremely important
      .perform();

Très bien expliqué ici: webdriver.WebElement.sendKeys

@hiteshAneja merci pour l'info. Dans notre cas, nous n'utilisions aucune touche de modification

Je reçois toujours ce problème. Y a-t-il des plans pour résoudre ce problème?

@wayneseymour Avez-vous déjà trouvé une solution?
@pgrm Je pense que vous êtes censé l'exécuter dans le contexte du navigateur
@dodoshanti c'est joli ghetto, mais ça marche

@pgrm Je pense que vous êtes censé l'exécuter dans le contexte du navigateur

même problème, sendkeys tapant le premier caractère uniquement.
en utilisant mocha 2.4.5 dans Windows 8.1
var emailTxt = driver.findElement (webdriver.By.name ('Email'));
driver.wait (emailTxt, 10000);
emailTxt.sendKeys ("test");

Bonjour, je rencontre le même problème que celui décrit dans cet article:

Aaron-Hartwig a commenté le 30 déc.2014
Avoir des problèmes avec sendKeys () où 5 est traité comme un retour arrière et 6 termine simplement le processus d'envoi des clés à l'entrée. Ex)
elem.sendKeys (58801) donnerait 8801 dans l'entrée
elem.sendKeys (85801) donnerait 801 dans l'entrée
elem.sendKeys (88601) donnerait 88 dans l'entrée

Cela ne se produit que lorsque j'exécute les tests à partir de Jenkins et ne se produit pas lors de l'exécution sur ma machine locale. Quelle est une solution possible à cela? Cela pourrait-il être quelque chose lié aux paramètres régionaux?

Nous n'avons également ce problème que sur jenkins et pas localement ...

Je vois ce problème avec le pilote Web Microsoft (v 10586) sur Edge - exactement le même test passe avec le pilote Chrome. Machine Windows 10, rapporteur Javascript.

Par exemple, si j'envoie des clés ("ABCDEFGHIJ") à une zone de texte d'entrée, seuls certains des caractères apparaissent.

Existe encore.
Site:
http://maxcabrera.com/code/todo-list/
Rapporteur - 4.0.10
[15:53:15] I / status - version autonome de sélénium disponible: 2.53.1 [par défaut]
[15:53:15] I / status - version chromedriver disponible: 2.25 [par défaut]
[15:53:15] I / status - version geckodriver disponible: v0.11.1 [par défaut]
[15:53:15] I / status - android-sdk n'est pas présent
[15:53:15] I / status - appium n'est pas présent
NodeJS - 7

Tester:

it('should create new note', function () {
        browser.get(URL)
        let webelement = $('input.enter-todo')
        webelement.clear()
        webelement.sendKeys('HHHHHHHHHHHHHHH')
        browser.sleep(2000)
        webelement.submit()

        let notes = $$('todo-list .small-12')

        browser.sleep(2000)
        //expect(notes.getText()).not.toContain('New Shiny note')
        expect(notes.getText()).toContain('HHHHHHHHHHHHHHH')
    })

Je pense que le problème pourrait être lié aux déclencheurs keyup / keydown.
J'ai contourné le problème en introduisant une fonction d'assistance avec un petit délai après chaque caractère:

function controlledInsert( elm, txt, delay ) {
  for (var i = 0, len = txt.length; i < len; i++) {
    elm.sendKeys( txt[ i ] );
    browser.driver.sleep( delay );
  }
  elm.sendKeys(protractor.Key.NULL);
}

Je suis également confronté au même problème lors du test de l'application mobile, mais la chose étrange est qu'elle fonctionne correctement sur d'autres pages uniquement sur une page particulière, elle se comporte différemment.

J'ai trouvé un problème similaire lorsque j'ai mis à niveau mon chrome vers la v57

J'ai découvert des clés comme "@" et "." ne sont pas envoyés. Le passage du navigateur de Chrome à Firefox résout le problème.
Cela ne semble pas lié cependant, car l'entrée alphanumérique est toujours envoyée correctement (la longueur de la chaîne n'a pas d'importance).

Si cela est utile pour d'autres personnes qui rencontrent cela, j'ai eu ce problème où sendKeys sautait systématiquement certains caractères. Un ng-change que j'ai sur l'élément qui met à jour la valeur d'un autre élément sur la page (mais ne change pas le focus) a causé le problème. La suppression de ce ng-change l'a corrigé. J'ai besoin du ng changement si je @dodoshanti l « « blah'.split ( » »). Foreach ((c) => element.sendKeys (c)) dont il fixe pour moi (devrait réellement faire probablement un .alors si possible après chaque sendKeys (char) pour être sûr mais fonctionne pour moi sans lui).

Même moi, je faisais face au même problème. Ce que j'ai changé a été instaed d'utiliser sendkeys j'ai utilisé setvalue.

Setvalue sera actif lorsque vous utilisez l'élément Android au lieu de l'élément Web ou mobile

@ kuiro5 merci beaucoup votre solution fonctionne pour moi: D

J'ai un texto avec. et @ je dois les séparer
lay.mui. [email protected]

attendre driver.elementByAccessibilityId ('textUserName'). sendKeys ('[email protected] ')
textfield affichera laymui. [email protected]
Je dois les diviser dans le code comme ceci:

wait driver.elementByAccessibilityId ('textUserName'). sendKeys ('lay');
attendez driver.elementByAccessibilityId ('textUserName'). sendKeys ('. mui');
attendre driver.elementByAccessibilityId ('textUserName'). sendKeys ('. [email protected]');

je ne peux pas non plus effacer le champ de texte
n'importe qui a une idée de la façon dont je peux effacer le pilote textfieldawait.elementByAccessibilityId ('textUserName'). clear () n'a pas fonctionné pour moi

Cette page vous a été utile?
0 / 5 - 0 notes