Tester si un élément est focalisé à l'aide de Selenium Webdriver
Je suis vraiment surpris, je ne peux pas trouver des références sur l'internet à l'essai pour l'élément le foyer en utilisant Selenium Webdriver.
Je suis désireux de vérifier lors de la soumission d'un formulaire est tentée avec un champ obligatoire manqué, l'accent est déplacé vers le champ vide. Mais je ne vois aucune façon de ce faire, utilisez le WebDriver API.
Je vais être en mesure de trouver l'élément ayant le focus à l'aide d'un JavascriptExecutor. Mais la lecture de la FAQ me fait pense qu'il doit y avoir un moyen pour effectuer la vérification à l'aide du pilote lui-même.
Merci pour toute aide.
OriginalL'auteur SamStephens | 2011-09-26
Vous devez vous connecter pour publier un commentaire.
driver.switchTo().activeElement()
sera de retour le concentre actuellementWebElement
. L'égalité est bien définie pourWebElement
, de sorte que vous pouvez appelerelement.equals(driver.switchTo().activeElement())
.L'appel de la un peu trompeur nommé
driver.switchTo().activeElement()
ne fait pas passer, ni nedriver.findElement()
, de sorte que vous n'avez pas besoin deswitchTo().defaultContent()
après; en fait, il serait probablement le flou de l'élément courant.Yep, semble bon pour moi 🙂
OriginalL'auteur Daniel Wagner-Hall
renvoie la concentre actuellement sur l'élément.
Fait en sorte que vous revenir après l'utilisation de
Aussi, si rien n'est porté à la
body
du document est retourné.Prendre un coup d'oeil à cette question ainsi.
En Sélénium comment puis-je trouver le "Courant" de l'objet
switchTo().defaultContent()
est incorrect.OriginalL'auteur Ranhiru Cooray
Vous pouvez trouver l'élément actif à l'aide du sélecteur " dom=document.activeElement'. Ensuite, vous pouvez affirmer que c'est l'élément que vous voulez qu'il soit porté ou non.
OriginalL'auteur Ashkan Aryan
Le WebDriver est censé changer le focus lorsque vous utilisez
Driver.FindElement
appels. Donc, vous êtes le dernier élément dans le Pilote de contexte est active.REMARQUE: Cette pauses pour tous les éléments injectés dynamique (ex: jQuery), de sorte que vous auriez besoin d'aller le script route ensuite.
OriginalL'auteur Brett Veenstra
@danielwagner-salle de La
boolean bb = driver.switchTo().activeElement().equals(driver.findElement(By.id("widget_113_signup_username")));
sera toujours passer, mais ne prouve pas que l'élément est mis en évidence si l'élément est hors de vue.NB: Impossible de commentaire car pas assez de points de réputation.
Une façon d'aborder ce qui pourrait être de l'utilisation
webElement.getLocation().getX();
getY()
méthodes de référence et les coordonnées sur la page et vérifiez son orientation.OriginalL'auteur Django_Tester