2009-07-15 10 views
0

Hallo alle Ich benutze diese Funktion, um Namen der Eingabefelder aus dem Browser zu bekommen. Problem ist, dass in einigen meiner Websites Eingabefelder die gleiche Position haben, so dass ich sie nicht korrekt durchfahren kann. Irgendwelche Ideen, wie man diesen Zyklus auf eine andere Weise als die gegenwärtige Position durchführt? Danke.Selen 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); 
     } 

Antwort

0

Da Sie die Menge der Elemente haben, können Sie einfach als Array durch sie gehen

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); 
     } 

diese Weise können Sie einfach alle Eingabeelemente im DOM durch von oben nach unten.

+0

danken Ihnen für Ihre Hilfe, aber das doesnot mein Problem zu lösen, weil Felder auf der gleichen Position sind ... zum Beispiel 3 Zyklus 2 zurück Felder und danach in 6 Zyklen ab 9 Zyklen Programmende mit Fehler, dass in 6 Zyklen kein Feld ist. –

+0

dies: "xpath = // input [" + b + "] @name" hol mir zwei Werte im dritten Zyklus ... ich brauche verschiedene Zugriffe auf Felder :( –

+0

oooo sorry meine Schuld, es funktioniert schön vielen Dank :) –

0

Endlösung:

public void hladame_fieldy()

{ 
      //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); 
    }