【问题标题】:Finding SVG Elements using RSelenium and XPath使用 RSelenium 和 XPath 查找 SVG 元素
【发布时间】:2019-09-10 07:31:48
【问题描述】:

我正在为一个私人网站编写一个动态网络抓取工具,我在其中抓取可用于运动队的不同条形图的结果。问题是团队城市名称是跨度元素中可用的文本,类为“bar-chart__value”,但有重复项(即纽约、洛杉矶)。

似乎唯一可以为团队名称提供唯一值的地方是 svg 元素,但我不知道如何使用 xpath 找到 svg 元素。

leaderboard <- map_dfr(1:length(a), function(x){
    team <- remDr$findElements("xpath", "//span[@class = 'bar-chart__logo']/*[name() = 'svg']")[[x]]$getElementText()
    if(team == "Average") {
      number <- remDr$findElements("xpath", "//span[@class = 'bar-chart__value']")[[x]]$getElementText()
      avg <<- x
    } else if(x > avg){
      number <- remDr$findElements("xpath", "//span[@class = 'bar-chart__value']
                                 //span[@class = 'play-link__number-span']")[[x-1]]$getElementText()
    } else {
      number <- remDr$findElements("xpath", "//span[@class = 'bar-chart__value']
                                 //span[@class = 'play-link__number-span']")[[x]]$getElementText()
    }
    df <- tibble(unlist(team), unlist(number))
    colnames(df) <- c("Team", specific)
    return(df)
  })

有谁知道如何在 findElement 方法中使用 xpath 来查找 svg 元素?这是返回错误的代码:

remDr$findElements("xpath", "//span[@class = 'bar-chart__logo']/*[name() = 'svg']")[[1]]$getElementText()

【问题讨论】:

    标签: svg xpath rselenium


    【解决方案1】:

    使用local-name() 而不是name()-> 这可能包含前缀。

    remDr$findElements("xpath", "//span[@class = 'bar-chart__logo']/*[local-name() = 'svg']")[x]$getElementText()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-28
      • 1970-01-01
      • 1970-01-01
      • 2020-05-19
      • 2020-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多