2017-10-19 12 views
1

J'essaie de localiser tous les éléments d'une page de résultat de recherche et de les mettre dans une liste. Le premier problème est de trouver tous les éléments. Je n'ai pas de problème pour trouver un élément spécifique:Trouver tous les éléments par Id/Css partiel, et les mettre dans une liste, avec Selenium en C#

driver.FindElement(By.CssSelector("#event_395634")); 

OU:

driver.FindElement(By.Id("event_395634")); 

Mais comment puis-je trouver tous les éléments commençant par « #event_ » ou « event_ »?

Et comment puis-je les mettre dans une liste? Est-ce un début ?:

List<IWebElement> eventList = new List<IWebElement>(); 
events = driver.FindElements(By.?("Magic code"); 

.... et puis? Ou suis-je loin? J'ai l'intention de faire une boucle dans la liste à un stade ultérieur.

Répondre

0

Il existe un sélecteur CSS qui sélectionne tous les éléments dont l'attribut commence par une chaîne donnée.
Vous pouvez l'utiliser avec By.CssSelector.

var events = driver.FindElements(By.CssSelector("[id^=event_]")); 

Cela devrait fonctionner.

+0

Oui, c'est vrai! Je vous remercie! Connaissez-vous également la réponse à la deuxième question? À propos de la liste? Maintenant, je suis si loin: 'var events = driver.FindElements (By.CssSelector (" [id^= événement_] ")); events.ToList (); foreach (objet o dans les événements) { System.Diagnostics.Debug.WriteLine (events); } ' – SamKar