2009-07-15 6 views
0

Bonjour à tous j'utilise cette fonction pour obtenir le nom des champs de saisie du navigateur. Le problème est que dans certains de mes champs d'entrée de sites ont la même position, donc je ne peux pas les faire circuler correctement. Des idées comment faire ce cycle d'une manière différente en tant que position? Merci.selenium C#


public void hladame_fieldy() 
{ 
      //fieldy 
      string nazov_fieldu; 
      decimal celkovy_pocet_fieldov = selenium.GetXpathCount ("//input[@type='text']"); 
      string field = "@type='text'"; 
      int b = 1; 
      for (b = 1;b<=celkovy_pocet_fieldov;b++) 
      { 
       nazov_fieldu = selenium.GetAttribute("xpath=//input[position()="+b+" and "+field+"]@name"); 
       Console.WriteLine(nazov_fieldu); 
      } 
      Console.WriteLine ("Celkovy pocet fieldov je = " + celkovy_pocet_fieldov); 
     } 

Répondre

0

Puisque vous avez la quantité d'éléments que vous pouvez simplement passer par eux comme un tableau

public void hladame_fieldy() 
{ 
       //fieldy 
       string nazov_fieldu; 
       decimal celkovy_pocet_fieldov = selenium.GetXpathCount ("//input[@type='text']"); 
       string field = "@type='text'"; 
       int b = 1; 
       for (b = 1;b<=celkovy_pocet_fieldov;b++) 
       { 
         nazov_fieldu = selenium.GetAttribute("xpath=//input[" + b + "]@name"); 
         Console.WriteLine(nazov_fieldu); 
       } 
       Console.WriteLine ("Celkovy pocet fieldov je = " + celkovy_pocet_fieldov); 
     } 

De cette façon, vous allez juste à travers tous les éléments d'entrée dans les DOM de haut en bas.

+0

merci pour votre aide, mais ce doesnot résoudre mon problème parce que les champs sont sur la même position ... par exemple 3 du cycle retourne 2 champs et après que dans 6 cycles de 9 cycles programme finissent avec erreur que dans 6 cycle est pas de champ. –

+0

ceci: "xpath = // entrée [" + b + "] @name" obtiens-moi deux valeurs en troisième cycle ... j'ai besoin de différents accès aux champs :( –

+0

oooo désolé ma faute, son fonctionnement sympa merci beaucoup :) –

0

solution finale:

hladame_fieldy public void()

{ 
      //fieldy 
      string nazov_fieldu; 
      decimal celkovy_pocet_fieldov = selenium.GetXpathCount ("//input[@type='text']"); 
      int b = 1; 
      string pomoc = ""; 
      for (b = 1;b<=celkovy_pocet_fieldov;b++) 
      { 
        nazov_fieldu = selenium.GetAttribute("xpath=//input[@type='text'" + pomoc +"]@name"); 
        pomoc = pomoc + " and @name!= '" + nazov_fieldu + "'"; 
        Console.WriteLine(nazov_fieldu); 
      } 
      Console.WriteLine ("Celkovy pocet fieldov je = " + celkovy_pocet_fieldov); 
    } 
Questions connexes