2016-04-12 17 views
0

リストボックスに追加されたテキストが正常に削除されたかどうかを確認しようとしています。 C#でSeleniumでこのタイプのシナリオを処理する最善の方法は何ですか?Selenium - リストボックスにテキストが存在するかどうかを確認する方法

私が現在使用しているコードは以下の通りです。

//Verify that the subject is added and then deleted 
    public static void VerifySubjectDel() 
    { 
     string subjectAddValue = GenerateRandomAlphaCode(200); 
     productPage.subjectAddTxtBx.SendKeys(subjectAddValue); 
     productPage.subjectAddBtn.Click(); 

     IWebElement elem = WebDriver.FindElement(By.Id("Subjects_ListBox")); 
     SelectElement selectList = new SelectElement(elem); 
     IList<IWebElement> options = selectList.Options; 

     if (options.ToList().Any(tagname => tagname.Text.Contains(subjectAddValue))) 
     { 
      Assert.IsTrue(true); 
      selectList.SelectByText(subjectAddValue); 
      productPage.subjectDelBtn.Click(); 
      WebDriver.SwitchTo().Alert().Accept(); 
      bool subjectDel = WebDriver.FindElements(By.XPath(".//*[@id='Subjects_ListBox']//option[contains(text(),'" + subjectAddValue + "')]")).Count == 0; 
      if (subjectDel) 
      { 
       Assert.IsTrue(subjectDel); 
      } 
      else 
       Assert.IsTrue(subjectDel, "Subject not deleted successfully"); 
     } 
     else 
      Assert.IsTrue(false, "The Subject added is not present in the Subject-ListBox"); 
    } 
+0

** CollectionAssert.DoesNotContain()**を使用してみてください – Sudeepthi

答えて

0

上記で取得したIWebElementでFindElementsを呼び出し、リストボックス内のすべての要素を返します。 LINQを使用すると、次のようなことができます。

bool success = !listBoxItems.Any(x => string.Compare(x.Text, subjectAddValue) == 0):