2011-11-04 19 views
5

Selenium IDE/Webdriverですべての入力テキストフィールドが空であることを確認します。属性 "text"または "textarea"を持つすべてのHTML入力要素を返すことができるメソッドがある場合、それらをすべて反復してテキストコンテキストが空であるかどうかを確認できます。すべてのテキスト入力フィールドがSeleniumで空であることを確認してください

しかし、私はそのような方法を見つけることができません。私はこれを他の方法で行うことができますか?

ありがとうございました

答えて

1

しました。

driver.findElements(By) 

これは、指定されたロケータを使用して、ページ上で利用可能なすべてのウェブ要素のリストを提供します。

2

ここで私はそれをやっています。場合によっては、入力テキストとテキストエリアとパスワードのすべてをキャッチし、これらの要素をIWebElementsのリストに格納します。それから私はリストを繰り返し、私が望むものを検証することができます。

private List<IWebElement> GetTextFields(IWebDriver driver) 
{ 

List<IWebElement> textFields; 

try{ 
    textFields.AddRange(driver.FindElements(By.CssSelector("input[type='text']").ToList()); 
} 
catch { 
    //throw exception or log exception 
} 

try { 
    textFields.AddRange(driver.FindElements(By.TagName("textarea").ToList()); 
} 
catch { 
    //throw exception or log exception 
} 

textFields.RemoveRange(i => !i.Displayed); //removes all hidden fields 

return textFields 
} 

このリストではテキストを確認できません。

foreach(IWebElement element in textFields) 
{ 
if(element.text != "") 
{ 
    //log error or throw exception 
} 
} 
3

.textは入力フィールドでは機能しないので、値属性を取得する必要があります。

bool areAllFieldsClear() 
{ 
    var myFields = driver.FindElements(By.Xpath("//input")); 
    foreach(var field in myFields) 
    { 
     if(field.GetAttribute("value") != "") { 
      return false; //field.Clear(); maybe? 
    } 
    return true; 
} 
+0

残念ながらゲームに遅れました。これを見て何か他のものを探していた。 – Highstead

+0

if **(if(field.getAttribute( "value")。isEmpty()) 'のように**条件が**変更されたときにそれを取得しました。 '!= null'または'!= ""の条件は私のために働いていませんでした。 – user123

関連する問題