2016-11-16 4 views
-1

Je veux trouver toutes les chaînes dans un texte avec WatiN. Je peux trouver la première chaîne, mais je ne peux pas tous les rassembler. Par exemple je veux trouver toutes les occurrences de "eau" dans ce texte:Trouver une chaîne dans un texte plusieurs fois et faire l'action à chaque fois

Il y a beaucoup d'eau sur terre. Mais toute l'eau n'est pas potable.

Donc ici je devrais trouver 2 "eau". Mon code ne trouve que le premier. Comment puis-je les trouver tous les deux?

Mon code est:

IE ie = new IE("http://examplesite.com"); 

Element test = ie.Table(Find.ByClass("dataTable")).Element("td"); 

ie.TableRow(Find.ByText(t => t.Contains("example string"))).TextField(Find.ByName("examplename")).Button(Find.ByValue("example value")).Click(); 

ie.WaitForComplete(); 
Console.WriteLine("finished"); 

Répondre

1

Vous pouvez utiliser IndexOf dans une boucle pour trouver de multiples occurrences d'un sous-chaîne.

const string haystack = "there are lots of water in the earth. but all of water arent drinkble."; 
const string needle = "water"; 

var startIndex = -1; 
while ((startIndex = haystack.IndexOf(needle, startIndex + 1)) > -1) 
{ 
    Console.WriteLine("Found {0} at {1}", needle, startIndex); 
} 
0

Divisez la chaîne puis saisissez toutes les entrées qui contiennent ce que vous recherchez.

var sentence = "There is a lot of water on earth. But not all water is drinkable." 
var parts = sentence.Split(' '); 
var words = parts.Where(p => p == "water"); 
+0

Ou juste 'parts.Count (p => p ==" eau ")'. Avoir une liste où tous les éléments sont "eau" ne semble pas très utile. – Berend

+0

La question originale est assez vague sur la raison pour laquelle il veut faire cela. Je n'ai aucune idée de ce qui lui est utile ou pas. –

+0

oui je pense que ce n'était pas utile (n'a pas encore essayé le code ur), je veux trouver quelques éléments avec le même nom d'id. et changez toutes les valeurs. par exemple, je veux trouver tous les textbox avec id "test, et changer la valeur de thire à autre chose. – behzad