无法从通用X路径检索值

时间:2018-07-24 17:48:17

标签: java arrays selenium-webdriver

我需要显示来自多个Web元素的文本,这些元素共享一个公共Xpath。

以下是我使用的代码:

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());
}

代码说明: 由于Xpath具有多个元素,因此我使用List of来存储它,并将这些Web元素文本存储在Array中。这些Web元素的大小显示出来,但是在运行期间,它仅显示前两个元素值,而第三个显示为空白。

注意:当我将窗口的缩放级别从(100减小到90)时,上述场景正常工作,但是减小该缩放级别似乎并不是一个策略性的解决方案,因为Xpath可能包含多个3个Web元素因此无法定义满足所有此类情况的准确缩放大小。请给我建议一个更好的解决方案。

1 个答案:

答案 0 :(得分:-1)

尝试:

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
}