我正在使用Selenium webdriver和Java自动化Web应用程序中的一些功能测试用例。我有一个表格,我可以添加新员工。添加新员工后,可以在另一个页面中看到添加的员工详细信息。我想验证添加的员工详细信息,最后从视图页面中删除该员工。 每个添加的员工详细信息都显示在视图页面的单独表中。每个表的xpath如下
.//*[@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 :(得分:0)
听起来你错过了最后的/div
来获得父div
内的div
内部:
.//*[@id='contentSec']/div/div
是否有任何方法可以访问上次添加的员工详细信息?
在这种情况下,您可以使用last()
:
.//*[@id='contentSec']/div/div[last()]
答案 1 :(得分:0)
所以,你在寻找元素的过程中犯了一个小错误。
应该是findElements
而不是findElement
List<WebElements> elements=driver.findElements(By.xpath(".//*[@id='contentSec']/div"));
driver.findElement
将始终寻找元素的第一个准确性,这就是为什么在尝试使用1
size
时始终获得elements.size()
的原因