Java Selenium Webdriver-从动态表访问数据
我正在使用SeleniumWebDriver和Java自动化web应用程序中的一些功能测试用例。我有一个可以添加新员工的表单。添加新员工时,可以在另一个页面中查看添加的员工详细信息。我想验证添加的员工详细信息,并最终从查看页面中删除该员工。 每个添加的员工详细信息都显示在视图页面的单独表格中。每个表的xpath如下所示Java Selenium Webdriver-从动态表访问数据,java,xpath,selenium-webdriver,Java,Xpath,Selenium Webdriver,我正在使用SeleniumWebDriver和Java自动化web应用程序中的一些功能测试用例。我有一个可以添加新员工的表单。添加新员工时,可以在另一个页面中查看添加的员工详细信息。我想验证添加的员工详细信息,并最终从查看页面中删除该员工。 每个添加的员工详细信息都显示在视图页面的单独表格中。每个表的xpath如下所示 .//*[@id='contentSec']/div/div[1] .//*[@id='contentSec']/div/div[2] .//*[@id='contentSe
.//*[@id='contentSec']/div/div[1]
.//*[@id='contentSec']/div/div[2]
.//*[@id='contentSec']/div/div[3]
and so on...
问题是如何获取最后添加的employee表的xpath以验证员工详细信息。我无法使用员工姓名或任何员工详细信息进行搜索,因为多个员工可能具有相同的详细信息。我想要一个通用的方法来访问应该始终有效的员工详细信息。我曾经
List<WebElements> elements=driver.findElements(By.xpath(".//*[@id='contentSec']/div"));
即使存在多个表,也始终返回1。是否有任何方法可以访问上次添加的员工详细信息?听起来您在获取父级
div
中的内部div
时缺少了最后的/div
:
.//*[@id='contentSec']/div/div
是否有任何方法可以访问上次添加的员工详细信息
在这种情况下,可以使用last()
:
听起来好像您在最后缺少了
/div
,而在父级div
中得到了内部div
:
.//*[@id='contentSec']/div/div
是否有任何方法可以访问上次添加的员工详细信息
在这种情况下,可以使用last()
:
因此,您在查找元素的方法中犯了一个小错误 它应该是
findElement
,而不是findElement
List<WebElements> elements=driver.findElements(By.xpath(".//*[@id='contentSec']/div"));
List elements=driver.findElements(By.xpath(“./*[@id='contentSec']/div”);
driver.findElement
将始终查找元素的第一个精度,这就是为什么在尝试使用elements.size()获取size
时,总是得到1
的原因。因此,您在查找元素的方法中犯了一个小错误
它应该是findElement
,而不是findElement
List<WebElements> elements=driver.findElements(By.xpath(".//*[@id='contentSec']/div"));
List elements=driver.findElements(By.xpath(“./*[@id='contentSec']/div”);
driver.findElement
将始终查找元素的第一个accurance,这就是为什么在尝试使用elements.size()
获取size
时,您总是得到1
的原因,但是上面的代码尝试了一些问题。如果我删除具有表xpath“//*[@id='contentSec']/div/div[2]”的员工,则删除“elements.size();”返回3,应该是2@user5912043好的,当然,更新了。请检查。尝试了上面的代码,但存在一些问题。如果我删除具有表xpath“//*[@id='contentSec']/div/div[2]”的员工,则删除“elements.size();”返回3,应该是2@user5912043好的,当然,更新了。请检查一下。对不起!!。。。这是我的代码中的一个错误,我已经更新了它!!。。。这是我代码中的一个错误,我已经更新了它