2013-08-21 24 views
0

我刚刚开始在我的HTML5网络应用程序中使用java编写一些硒自动测试。我想知道是否有可能,而不是将id属性添加到所有内容中,以id搜索div中的多个项目。Selenium - 在父项内搜索项目

例如,我有一个dividsfn-PopupMenu。有几个项目class="gwt-MenuItem"role="menuitem"。我希望能够找到并控制每一个这些,而不会给他们个别的ID。

这可能吗?或者我应该只是把id放在一切。

感谢,

克里斯

+0

虽然可以获取父WebElement,然后以编程方式走WebElement孩子,我不建议这样做。它每次访问WebElement时都会非常缓慢地验证它(WebElement是代理)。举个例子,我们有一张有20行的表格。我尝试通过从顶部表格元素开始走WebElement树将内容转换为简单的POJO,并花了2分钟。 – tdrury

回答

1

硒,您还可以通过CSS selectorsXPath expressions搜索元素。没有实际的HTML代码,很难说这里最好的是什么。但总的来说,你应该首先尝试使用ID,然后CSS,如果XPath不可行的话。

也许你可以做这样的事情:

driver.findElements(By.cssSelector("#sfn-PopupMenu .gwt-MenuItem"));