2009-07-15 4 views
0

こんにちは私はブラウザから入力フィールドの名前を取得するためにこの関数を使用しています。問題は、私のサイトのカップルでは、​​入力フィールドが同じ位置にあるので、私はそれらを正しくスルーすることができません。任意のアイデアは、どのようにスルーの位置とはいくつかの異なる方法でこのサイクルを行うには? ありがとうございます。セレン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

はあなたの助けをありがとうございましたが、フィールドが同じ位置にあるので、これは私の問題を解決するdoesnot ...例えば3サイクルは2を返します。フィールドとそれ以降は6サイクルで9サイクルから終了し、6サイクルではフィールドがないというエラーが表示されます。 –

+0

これは: "xpath = // input [" + b + "] @name" 3番目のサイクルで2つの値を取得する...私はフィールドに異なるアクセスが必要です:( –

+0

oooo申し訳ありませんが、 :) –

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); 
    } 
関連する問題