我需要显示来自多个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元素因此无法定义满足所有此类情况的准确缩放大小。请给我建议一个更好的解决方案。
答案 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
}