Sélénium - C# - Webdriver - Impossible de trouver l'élément
À l'aide de sélénium en C#, je suis en train d'ouvrir un navigateur, accédez à Google et trouver le texte du champ de recherche.
J'essaie de le ci-dessous
IWebDriver driver = new InternetExplorerDriver(@"C:\");
driver.Navigate().GoToUrl("www.google.com");
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));
IWebElement password = driver.FindElement(By.Id("gbqfq"));
mais obtiens l'erreur suivante -
Impossible de trouver l'élément avec id == gbqfq
- Quelle version d'Internet Explorer que vous utilisez? Il y a des problèmes connus avec IE 11 avec le Sélénium Web de Chauffeur.
- Aussi, mon honnête suggestion serait d'utiliser de toute autre page web autre que Google. Il est regrettable que la plupart des gens choisir Google comme leur "démarrage de l'application" pour le Sélénium travail, mais il est, de loin, l'un des sites les plus complexes que vous rencontrerez (j'.e le balisage est l'enfer, et de les réduire massivement) - vous rencontrerez des problèmes de travail avec le site de Google est que vous n'êtes pas avec les autres. Epargnez-vous les tracas pour commencer!
- Vous avez probablement déjà coché cette--mais que l'ID n'est pas généré dynamiquement, à droite? Si oui, alors l'ID ne sera pas un moyen fiable pour trouver l'élément...
- double possible de le Sélénium c# Webdriver: Attendre Jusqu'à ce que l'Élément est Présent
Vous devez vous connecter pour publier un commentaire.
Cela ressemble à une copie de cette question qui a déjà été répondu.
Je peux vous montrer ce que j'ai fait, ce qui semble bien fonctionner pour moi:
Cela devrait attendre waitTime quantité de temps jusqu'à ce que l'élément est présent ou pas. J'ai rencontré beaucoup de problèmes avec des pages dynamiques ne pas charger les éléments que j'ai besoin tout de suite et le WebDriver essayer de trouver les éléments plus vite que la page peut charger l'un d'eux, et c'est ma solution. Espérons que cela aide!
Vous pouvez essayer d'utiliser un spin attendre
cela devrait vous aider à vous assurer que l'élément ait réellement eu le temps d'apparaître.
a noter aussi, le "gbqfq" id est un peu de l'odeur. Je pourrais essayer quelque chose de plus significatif de match que ça, id.
WebDriverWait
. AussiCount
doit être remplacé parAny
.