【问题标题】:Rselenium remove div elementRselenium 移除 div 元素
【发布时间】:2019-08-07 05:13:43
【问题描述】:

我想使用 RSelenium 从网页中删除一个 div 元素。这是一个 MWE,我想在其中删除 <div id="header">。我可以找到元素。我怎样才能让它消失?

MWE

library(RSelenium)

url <- 'https://ropensci.org'

## These two lines will pull the latest docker image of firefox and run it
system("docker pull selenium/standalone-firefox:latest")
system("docker run -d -p 4445:4444 selenium/standalone-firefox:latest")

drvr <- RSelenium::remoteDriver(port = 4445L)
drvr$open()
drvr$navigate(url)
drvr$screenshot(display = TRUE)

drvr$findElement("xpath", '//div[@id="header"]')

更多上下文

我有一个网页,其中 div 标题浮动(而不是固定在顶部),因为我正在展开折叠的复选框,然后单击复选框。该 div 标题妨碍单击其他元素。

【问题讨论】:

    标签: r web-scraping rselenium


    【解决方案1】:

    如果您想对活动会话执行此操作,您可以删除(实际上使其隐藏)该元素,但您必须使用 JavaScript。 RSelenium 有一个 executeScript() 方法作为驱动程序类 (docs) 的一部分。

    应该这样做,您可能需要修改,因为我无法访问您的特定网页/实例:

    drvr$executeScript("return document.getElementById('header').remove();")
    

    编辑:如果您只想将其删除以解析静态内容,也可以在静态页面源 HTML 上使用正则表达式将其删除。但这似乎不是您的用例。如果您也感兴趣,请告诉我一个示例。

    【讨论】:

    • 太棒了。效果很好。谢谢。
    • 对于未来的搜索者,我实际上有一个类标签,所以我不得不稍微调整一下这个了不起的解决方案。我使用@GeoffreyGrimm 的方法和此处找到的 jQuery 删除解决方案:stackoverflow.com/a/4777105/1000343
    猜你喜欢
    • 1970-01-01
    • 2013-06-19
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    • 2013-04-22
    • 2011-07-15
    • 1970-01-01
    相关资源
    最近更新 更多