我正在寻求一些帮助,因为我刚刚进入使用 Selenium 和 Java 绑定(bind)的 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();
}
}
错误消息:
Exception in thread "main" org.openqa.selenium.InvalidSelectorException: The given selector dijitReset dijitInputInner'] is either invalid or does not result in a WebElement. The following error occurred: InvalidSelectorError: Unable to locate an element with the xpath expression dijitReset dijitInputInner'] because of the following error: SyntaxError: The expression is not a legal expression.
我认为该错误告诉我 dijitReset dijitInputInner
无效,这就是它不起作用的原因,但是,我不确定如何解决此问题。有什么帮助吗?由于inspect元素中的项目的类是:dijitReset dijitInputInner
。
最佳答案
如果您只想计算元素(文本框)的数量,则可以使用 size() 避免循环每个 Web 元素
int boxes = driver.findElements(By.xpath(".//*[@class='dijitReset dijitInputInner']")).size();
关于java - 在 Java 中查找网页上文本框的总数 - Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34044477/