R — подавлять вывод try() на консоль при перехвате выражения Rselenium

Следующий код отправляет вывод на консоль, когда выражение не выполняется, несмотря на то, что аргумент 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().

Был бы признателен за любые идеи.


person LWRMS    schedule 13.10.2016    source источник
comment
На гитхабе есть обновленная версия. Вы можете установить с помощью devtools::install_github("ropensci/RSelenium").   -  person jdharrison    schedule 14.10.2016
comment
Что ж, попробуй использовать tryCatch()   -  person Bharath    schedule 14.10.2016


Ответы (1)


Вместо этого используйте remDr$findElements() с теми же аргументами. Если элемент, который вы ищете, не существует, он просто возвращает нулевую длину list, которую легко проверить, и вы не получите длинное сообщение об ошибке, напечатанное на консоли.

person pseudospin    schedule 10.02.2021