2009-07-15 64 views
0

大家好我正在使用這個函數來獲取來自瀏覽器的輸入字段的名稱。問題是,在我的網站幾個輸入字段具有相同的位置,所以我無法正確地循環thrue他們。任何想法如何做到這一點循環以不同的方式作爲thrue的位置? 謝謝。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); 
     } 

回答

0

既然你的元素,你可以通過他們只是去爲一個數組

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

這樣,你只是去通過DOM中所有輸入單元從上到下量。

+0

感謝你的幫助,但這個亙古不變的,因爲字段相同位置上的解決我的問題...例如3週期返回2然後在9個循環的6個循環中完成程序,並且在6個循環中沒有字段出現錯誤。 – 2009-07-15 14:15:26

0

最終的解決方案:

公共無效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); 
    }