查找网页上的文本框总数 - Java - Selenium

时间:2015-12-02 13:52:58

标签: java selenium xpath

我正在寻找一些帮助,因为我正在使用Selenium和Java绑定进入Web自动化。我试图在网页上找到文本框的总数,我有代码用于检查@type = text。但是,当我尝试通过以下方式查找文本框时,代码如下:

“// input [@ type ='text'[@ class ='dijitReset dijitInputInner']”它失败了。代码如下。

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//Launch browser
driver.get("http://localhost/2010A15/?p=register");

//Create Web element list

java.util.List<WebElement> textboxes = driver.findElements(By.xpath("dijitReset dijitInputInner']"));

System.out.println(textboxes.size());

for(int i=1; i<=textboxes.size(); i=i+1);
{
    System.out.println(textboxes.size());
}

driver.close();  





}

}

错误消息:线程“main”中的异常org.openqa.selenium.InvalidSelectorException:给定的选择器dijitReset dijitInputInner']无效或不会产生WebElement。发生以下错误: InvalidSelectorError:由于以下错误,无法找到具有xpath表达式dijitReset dijitInputInner']的元素: SyntaxError:表达式不是合法表达式。

我认为错误告诉我dijitReset dijitInputInner无效,这就是为什么它不起作用,但是,我不确定如何解决这个问题。任何帮助?因为inspect元素中的item类是:dijitReset dijitInputInner

2 个答案:

答案 0 :(得分:0)

如果您只想计算元素(文本框)的数量,则可以避免使用size()来循环每个元素

int boxes = driver.findElements(By.xpath(".//*[@class='dijitReset dijitInputInner']")).size();

答案 1 :(得分:0)

List<WebElements> totalTextboxes = driver.findElements(By.xpath("//input[@type='text']"));
System.out.println(totalTextboxes.size());