le rapporteur obtenir de l'élément par le nom de la balise
Actuellement, je suis en train de travailler avec le rapporteur et le Sélénium web Pilote.
J'ai le problème suivant:
J'ai une page html, et je fais du rapporteur, en cliquant sur un bouton. Ensuite, une fenêtre pop-up. Cette fenêtre contient une zone de texte avec le Nom "Description":
<input type="Text" name="Description" ... />
Maintenant, quand j'essaie suivantes:
element(by.css('[name="Description"]')).sendKeys("rabbababab");
Le navigateur ne fait rien, mais le rapporteur ne renvoie pas d'erreur. Aucun texte tapé dans la zone de texte. Malheureusement, le nom est la seule façon de identfy à l'entrée de zone de texte.
Ce que je fais mal?
Sur la base des informations donné qu'il n'existe pas de problèmes et que le code du travail, pour moi, la sélection de l'élément de
"[name='']"
syntaxe fonctionne dans du rapporteur. Vous pouvez utiliser la promesse et de mettre un custom fonction de rappel de vérifier si un élément du DOM a lié trouvé. angulaire.github.io/rapporteur/#/...OriginalL'auteur Adrian Melzer | 2015-10-07
Vous devez vous connecter pour publier un commentaire.
Sélectionnant directement par nom fonctionne ainsi:
OriginalL'auteur mooses
OK les gars, j'ai constaté le problème.
Ce n'était pas une alerte, c'est juste un div, et toutes les autres commandes sont verrouillées pour la Saisie de l'utilisateur. mais le Dialogue couvre une zone de texte, qui a les mêmes propriétés css. Donc, le rapporteur écrit simplement dans le couvert de zone de texte et je ne pourrais pas le voir...
Le Problème est résolu
OriginalL'auteur Adrian Melzer
Parfois si cet élément est à l'intérieur de l'iframe, alors vous devez l'activer pour que l'iframe. Il suffit de vérifier que est-il un iframe ou modale disponible?
sinon pour ton code semble correct.
OriginalL'auteur yojna
Il y a une " invite de gestionnaire de rapporteur, où vous pouvez l'identifier et ensuite envoyer les données dans le champ de saisie que vous souhaitez. Voici comment -
Remarque: La fenêtre pop-up doit avoir une entrée qui peut accepter des données d'autre vous commande échoue.
Si la solution ci-dessus ne fonctionne pas, alors essayez de l'envoi de données par commutation de la pop-up, puis à l'envoi du texte. Voici comment -
Si il y a de nombreux invites, vous pouvez utiliser les poignées de fenêtre de fonction pour passer à celui que vous voulez. Voici comment -
Espère que cela aide.
Pour
Alert
objet, je ne pense pas qu'il y est une option de ce genre. Cependant, vous pouvez le faire en utilisant leswitchTo()
fonction etgetAllWindowHandles()
. Mise à jour de réponse.Hmmm en quelque sorte, ce ne semble pas être un alert(). Cause rapporteur dit "pas de fenêtre d'alerte"... et, de plus d'une boîte de Dialogue.... Ses bizarre, parce que quand je inspecter l'objet de son un div, donc, le rapporteur doit le reconnaître...
ne
switchTo()
fenêtre à l'aide degetAllWindowHandles()
aider à identifier votre pop-up? Ou donne-t-il une erreur?OriginalL'auteur Girish Sortur
Peut-être que vous avez plusieurs objets qui ont name="Description" dans votre application.
Vous pouvez le trouver dans google Chrome:
Type [name="Description"] et de voir comment beaucoup de résultats qu'il trouve.
élément(par.css('[name="Description"]'))
est le même que
Si vous trouvez plus d'un, alors vous pouvez essayer ce qui suit:
1. Essayez un clic sur le champ avant de l'envoyer clés
2.
3.
Vous pouvez essayer de mettre la ligne suivante, avant l'envoi de clés :
le navigateur.waitForAngular(); //attendre jusqu'à ce que l'angle d'application des charges
Laissez-nous savoir comment il a travaillé.
OriginalL'auteur xrayder