我正在从 facebook 获取日期网络元素,并使用下面的代码循环它。
public class select_facebook {
public static void main(String[] args) throws Exception {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.facebook.com");
List<WebElement> days = driver.findElements(By.xpath("//select[@id='day']"));
System.out.println(days.size());
for (int i=0;i<days.size();i++) {
System.out.println(days.get(i));
}
}
}
但我得到的输出为
1
[[FirefoxDriver: firefox on XP (58765a0e-31a0-40bc-8565-3418ae54682c)] -> xpath: //select[@id='day']]
但是如果我使用System.out.println(days.get(i).gettext());
,for循环中的代码相同
它列出了从 1 到 31 的所有日期。
我的问题是为什么我要把它称为
List<WebElement> days = driver.findElements(By.xpath("//select[@id='day']"));
因为 webElements 的大小也只是 :1
System.out.println(days.size());
相反,我可以将其称为
WebElement days = driver.findElement(By.xpath("//select[@id='day']"));
最佳答案
您将获得元素列表作为返回
List<WebElement> days = driver.findElements(By.xpath("//select[@id='day']"));
因为同一 ID(“day”)可能有多个元素。
关于java - Selenium 中 WebElements 与 WebElement 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52964388/