2016-03-02 101 views
1

我使用Selenium webdriver和Java自动化Web应用程序中的一些功能测试用例。我有一张表格可以添加新员工。添加新员工时,可以在其他页面中看到添加的员工详细信息。我想验证添加的员工详细信息,并最终从查看页面中删除该员工。 每个添加的员工详细信息都在查看页面的单独表格中显示。每个表的XPath是如下Selenium Webdriver - 从动态表访问数据

.//*[@id='contentSec']/div/div[1] 
.//*[@id='contentSec']/div/div[2] 
.//*[@id='contentSec']/div/div[3] 
and so on... 

的问题是,我怎样才能得到最后添加的职员表的XPath的,以验证员工详细信息。我无法使用员工姓名或任何员工细节进行搜索,因为多个员工可能具有相同的详细信息我想要一个通用的方法来访问应该始终工作的员工细节。我用

List<WebElements> elements=driver.findElements(By.xpath(".//*[@id='contentSec']/div")); 

elements.size(); 

始终返回1,即使多个表存在。有没有方法可以访问最后添加的员工详细信息?

回答

0

这听起来像你缺少/div在年底拿到内部div个父div内:

.//*[@id='contentSec']/div/div 

是否有访问最后添加的员工详细信息的任何方法?

在这种情况下,你可以使用last()

.//*[@id='contentSec']/div/div[last()] 
+0

尝试上面的代码,以获得size时,但有一些问题。如果我用table xpath'.//*[@id='contentSec']/div/div[2]'删除雇员',那么'elements.size();'返回3,应该是2 – stackoverflow

+0

@ user5912043好吧,当然,更新。请检查一下。 – alecxe

0

所以,你在你找到的元素的方法做一个小错误。

应该findElements而不是findElement

List<WebElements> elements=driver.findElements(By.xpath(".//*[@id='contentSec']/div")); 

driver.findElement总是会元素的第一accurance这就是为什么你总是让1尝试使用elements.size()

+0

对不起!!这是我的代码中的一个错误,我已经更新了它 – stackoverflow