我在尝试用硒抓取的网页中有此代码:
<h4 class="category" id="sc_14295">...</h4>
<h4 class="category" id="sc_14292">...</h4>
<h4 class="category" id="sc_14291">...</h4>
<h4 class="category" id="sc_14299">...</h4>
我试图实现一个这样的方法(我在SO上找到了它)来获取至少一个id:
String id = driver.findElement(By.xpath("//div[@class='category']")).getAttribute("id");
通过这种方式:
String id = driver.findElement(By.xpath("//h4[@class='category']")).getAttribute("id");
没用 我假设我应该使用,findElements()
但是不能有getAtttribute。如何提取所有ID的列表?谢谢。
要打印元素的id属性的List,您需要为引入WebDriverWait,并且可以使用Java8和,并且可以使用以下任一Locator Strategies:visibilityOfAllElementsLocatedBy()
stream()
map()
cssSelector
:
System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("h4.category"))).stream().map(element->element.getAttribute("id")).collect(Collectors.toList()));
xpath
:
System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//h4[@class='category']"))).stream().map(element->element.getAttribute("id")).collect(Collectors.toList()));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句