Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium Webdriver-从动态表访问数据_Java_Xpath_Selenium Webdriver - Fatal编程技术网

Java Selenium Webdriver-从动态表访问数据

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

我正在使用SeleniumWebDriver和Java自动化web应用程序中的一些功能测试用例。我有一个可以添加新员工的表单。添加新员工时,可以在另一个页面中查看添加的员工详细信息。我想验证添加的员工详细信息,并最终从查看页面中删除该员工。 每个添加的员工详细信息都显示在视图页面的单独表格中。每个表的xpath如下所示

.//*[@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好的,当然,更新了。请检查一下。对不起!!。。。这是我的代码中的一个错误,我已经更新了它!!。。。这是我代码中的一个错误,我已经更新了它