使用Selenium验证所有文本输入字段是否为空

时间:2011-11-04 02:59:20

标签: selenium webdriver

我想使用Selenium IDE / Webdriver验证所有输入文本字段是否为空。假设有一个方法可以返回所有带有“text”或“textarea”属性的HTML输入元素,那么我可以迭代所有这些元素并检查文本上下文是否为空。

但我找不到这样的方法。我还有什么方法可以做到这一点?

由于

3 个答案:

答案 0 :(得分:3)

考虑到.text不适用于输入字段,你必须得到value属性。

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

答案 1 :(得分:2)

我是这样做的。在某些情况下,我会捕获所有输入文本和textarea以及密码,并将这些元素存储在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
 }
}

答案 2 :(得分:1)

你试过了吗?

driver.findElements(By)

这将使用您指定的定位器为您提供页面上可用的所有webelements列表。