Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 无法从公共X路径检索值_Java_Arrays_Selenium Webdriver - Fatal编程技术网

Java 无法从公共X路径检索值

Java 无法从公共X路径检索值,java,arrays,selenium-webdriver,Java,Arrays,Selenium Webdriver,我需要显示来自共享一个公共Xpath的多个web元素的文本 下面是我使用的代码: List<WebElement> cmtnames =driver.findElements(By.xpath("//*[@id='issue_actions_container']/div/div/div/div[2]/a")); System.out.println(cmtnames.size()); List<String> cmtlist = new ArrayList<S

我需要显示来自共享一个公共Xpath的多个web元素的文本

下面是我使用的代码:

List<WebElement> cmtnames =driver.findElements(By.xpath("//*[@id='issue_actions_container']/div/div/div/div[2]/a")); 
System.out.println(cmtnames.size());

List<String> cmtlist = new ArrayList<String>();
for(int u=0;u<cmtnames.size();u++) 
{                               
cmtlist.add(cmtnames.get(u).getText());
System.out.println(cmtnames.get(u).getText());
}
List cmtnames=driver.findElements(By.xpath(“//*[@id='issue\u actions\u container']/div/div/div/div[2]/a”);
System.out.println(cmtnames.size());
List cmtlist=new ArrayList();
对于(int u=0;u尝试:

Actions action=新操作(webdriver);
WebElement=driver.findElement(By.xpath(“/*[@id='issue\u actions\u container']]/div/div/div/div/div[2]/a”);
action.moveToElement(element.build().perform();//移动到元素
列出cmtnames=driver.findElements(By.xpath(“/*[@id='issue\u actions\u container']]/div/div/div/div[2]/a”);
for(WebElement e:cmtnames){
System.out.println(e.getText());//打印所有元素
}

这与问题中的循环有何不同?它仍然不能用您提供的代码生成整个值。@盖伊拉杰夫兰詹,我的答案是“列表”的正确实现,因为它获取所有Web元素并存储在数据结构中,因此无需再次将它们存储在数组中。@Rathish_Logan,如果您的代码是wo在缩小时,这些元素可能在正常屏幕大小上不可见。由于Selenium Webdriver试图模拟真实用户,因此它无法与不可见/隐藏的元素交互。首先,您可以尝试使用操作移动到元素。我已在回答中添加了代码。请让我知道这是否有效。@theGuy,您是correct,未显示的值从窗口中隐藏,现在如何向下滚动并获取其余不可见的WebElements值?@Rathish_Logan,我的代码的前3行将移动到该元素(您也可以在父元素上使用它)然后使用“列表”获取所有元素。是否可以检查
[@id='issue\u actions\u container']/div/div/div/div[2]/a
的浏览器调试器(F12)中是否存在所有3个元素?
Actions action = new Actions(webdriver);
WebElement element = driver.findElement(By.xpath("//*[@id='issue_actions_container']/div/div/div/div[2]/a"));
action.moveToElement(element).build().perform(); // to move to the element

List<WebElement> cmtnames =driver.findElements(By.xpath("//*[@id='issue_actions_container']/div/div/div/div[2]/a"));
for(WebElement e : cmtnames ){
System.out.println(e.getText()); // to print all the elements
}