我正在寻找一些帮助,因为我正在使用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
答案 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());