有没有一种方法可以使用Selenium提取WebElement的显示名称?

时间:2019-07-05 15:52:32

标签: java selenium web-scraping

我正在尝试使用硒访问网站上显示的其他产品的名称。例如,在https://www.supremenewyork.com/shop/all/jackets上,我可以找到产品(webElements)并将它们放在列表中,但是我无法获得它们的名称(如图所示)。有没有办法使用Selenium(在Java中)做到这一点?

我已经尝试了WebElement Interface API中的大多数方法。

driver.get("https://www.supremenewyork.com/shop/all/");
ArrayList <WebElement> list = new ArrayList<>();
list.addAll(driver.findElements(By.className("inner-article")));
for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i).getTagName());
}

我希望控制台输出显示该页面所有产品的名称,但是我得到的是相同字符串的列表:“ div”。

3 个答案:

答案 0 :(得分:1)

您必须使用.getText()。将行替换为

System.out.println(list.get(i).getText());

答案 1 :(得分:0)

docs指出
“获取此元素的标签名称。不是name属性的值:将为该元素返回“输入”。”

如果您尝试获取name属性。您应该尝试

System.out.println(list.get(i).getAttribute("name"));

可以为所需的任何其他属性更改名称。

答案 2 :(得分:0)

您可以尝试使用getText()方法,根据documentation,它将返回元素和所有子元素中的所有可见文本。如果只需要产品名称或颜色,请尝试使用By.ByCssSelector(String cssSelector)并在选择元素时将选择器指定为颜色“ .inner-article p a”或“ .inner-article h1a”。