【问题标题】:R - Suppress try() output to console when trapping an Rselenium expressionR - 捕获 Rselenium 表达式时抑制 try() 输出到控制台
【发布时间】:2016-10-13 19:07:23
【问题描述】:

即使try() 参数silent = TRUE,当表达式失败时,以下代码也会将输出发送到控制台。

dd = try(unlist(remDr$findElement("css", "#ctl00_mainA")), silent = TRUE)

suppressMessages() 不会抑制输出。

dd = suppressMessages(try(unlist(remDr$findElement("css", "#ctl00_mainA")), silent = TRUE))

try() 用于捕获错误Selenium message: Unable to locate element: ........。代码逻辑完美运行;脚本继续按预期运行。

该消息不是以红色显示的错误。消息为黑色; print() 和 cat() 产生的颜色相同。

回声已关闭。源代码不会打印到控制台。

我想抑制消息,同时保留使用 print() 和 cat() 向控制台发送消息的能力。

希望有任何想法。

【问题讨论】:

  • github上有更新版本。您可以使用devtools::install_github("ropensci/RSelenium") 安装。
  • 试试tryCatch()

标签: r try-catch rselenium suppressmessage


【解决方案1】:

使用 remDr$findElements() 代替相同的参数。如果您要查找的元素不存在,它只会返回一个零长度 list,这很容易测试,并且您不会在控制台上打印出冗长的错误消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 2011-03-24
    相关资源
    最近更新 更多