RSelenium - 如何获取节点的子节点号及其 xpaths

RSelenium - how to obtain a node's child node number and their xpaths

我正在使用 RSelenium 进行网页抓取。现在我有一个来自动态生成的网页的某个 XML 节点的 xpath。子节点属于同一类。但是,我对子节点的数量没有先验知识。 (例如,当您在购物网站上搜索稀有商品时,您可能 运行 会遇到这种情况。)

一般来说,如何获取以下信息?

1) 一个节点的子节点个数。 2) 以上的 xpath(s)。我的目标是在每个子节点上应用操作(例如填充、检查或单击,具体取决于节点的类型)。

我在 chrome 中看到一些使用 xpath 助手的 xpath。那我就彻底卡住了。

最好使用 RSelenium 进行示例。 httr + rvest 也可以。

rvest 解决方案如下:

require(rvest)
your_xpath = "YOUR XPATH"
doc <- read_html(remDr$getPageSource()[[1]])
children <- doc %>% html_node(xpath=your_xpath) %>% html_children()

然后您可以遍历子项并根据需要对他们进行迭代

for (i in 1:length(children)){
  webElem <- remDr$findElement(using = 'xpath', sprintf("%s/*[%d]", your_xpath, i))
  if(classify_node(children[i]) == "click"){
    webElem$$clickElement()
  } else {...}
}