2017-02-02 9 views
1

私がテストしているSelect要素があります。私は、この選択要素の中にユーザ指定のテキストを含む特定のオプションが存在しないことをアサートする必要があります。また、ユーザ指定のテキストを持つ別のオプションがSelectElementに存在することをアサートします。SelectElement要素の中にSeleniumを介してオプションが存在するかどうかを確認します。

+0

[ask]をお読みください。試したコードやエラーメッセージなどの実行結果を提供してください。ページや関連するHTMLへのリンクも提供してください。 – JeffC

+0

私はこれをアサートする適切な方法がわからないので、コードを試していません。 SelectElementクラスにはこれをチェックするメソッドが含まれていないようです。ページはプライベートページです –

+0

私はあなたが「知っていない」ことを理解していますが、私の指摘はすべてのチュートリアル、セレクトのドキュメント、その他の質問はこちら...確かにあなたはそれらのいくつかを読んだことがあります。いくつかの試み。 SOはコード作成サービスではありません。私たちはあなたの質問を研究し、あなた自身で少なくともいくつかの試みをする努力を払うことを期待しています。すでに行っている場合は、あなたの質問を更新して、あなたが読んだことを見て、より良いアドバイスをすることができます。 – JeffC

答えて

0

は、パフォーマンスが少し

public static bool SelectElementContainsItemText(SelectElement selElem, string itemText) 
    { 
     bool found = false; 

     for (int i = 0; i < selElem.Options.Count; i++) 
     { 
      var blah = selElem.Options[i].Text; 
      if (selElem.Options[i].Text.Equals(itemText)) 
      { 
       found = true; 
       break; 
      } 
     } 

     return found; 
    } 
1

あなたは、少なくとも2つの方法でこれを行うことができます:

:あなたのオプションに基づいて要素を作成し、それが存在するかを確認するXPathを使用して

  • は、次のいずれかのようなXPathを使います

    // /オプション[テキスト()= 'your_text']
    //する/オプションを選択を選択し、[@ヴァルル・レイキャヴィーク= 'your_value']

  • すべてのオプションからテキストを取得し、テキストが、あなたの文字列が含まれているかどうかを確認

最初のオプションはもちろん簡単です。

public bool OptionListContains(SelectElement select, string expectedValue) 
{ 
    IList<IWebElement> options = select.Options; 
    List<string> optionsText = options.Select(a => a.Text).ToList(); 
    return optionsText.Contains(expectedValue); 
} 

あなたが必要となる前に、LINQクエリを使用していない念のために:

以下
+0

適切なAssertをSeleniumコードに供給できますか? SelectElementクラス内に要素やオプションが存在するかどうかを確認できるメソッドはありません。それは私が詰まっている部分です –

+0

申し訳ありませんが、私は持っていない/セレンとC#を使用します。セレンとC#といくつかの簡単なテストを試してみていくつかの基本的なチュートリアルを検索してください。 http://www.seleniumhq.org/docs/03_webdriver.jsp#the-5-minute-getting-started-guide – lauda

2

を受けるが、これは働くだろう、それを行うための一つの方法です。

using System.Linq;

+0

を参照してください。問題のselect要素には、980個のオプションがあります。私は、最初にすべてのオプションのテキストを取り込んでから、それらのうちの1つにテキストが含まれているかどうかをチェックするので、パフォーマンスが大幅に低下すると思います。私は、トラバーサル時にテキストをチェックしながら各オプションを横断することは、パフォーマンス上の理由から、より良いオプションだと思います。私の答えはこれを行います。 –

関連する問題