У меня запланировано несколько соскобов через RSelenium.Иногда скребет неудачи, и я хотел бы знать причину.Я отмечаю, что сообщения об ошибках (выделены красным) довольно информативны, но я не знаю, как их регистрировать.
Допустим, я указал «не правильно сформированный URL».:
tryCatch(
expr = remDr$navigate("i.am.not.an.url"),
error = function(error){
print(error)
# write.table(error, file = ...)
}
)
Это то, что я получаю, но оно не дает подробных сведений о том, что вызвало ошибку
<simpleError: Summary: UnknownError
Detail: An unknown server-side error occurred while processing the command.
class: org.openqa.selenium.WebDriverException
Further Details: run errorDetails method>
Это более информативно, но мне не удается его зарегистрировать.
Selenium message:Target URL i.am.not.an.url is not well-formed.
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03'
System info: host: '9bc48e7a4511', ip: '172.17.0.4', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-1087-aws', java.version: '1.8.0_91'
Driver info: driver.version: unknown
Что я пробовал:
Использование класса обработки ошибок.Он включает в себя очень подробную спецификацию сообщений об ошибках и их значения, но мне не удается извлечь их, учитывая мою текущую ошибку.
errHandle = errorHandler(remDr)
errHandle$checkStatus(remDr)
errHandle$checkError(res = remDr)
Использование обработчика сообщений из другого #SO вопроса:
messageHandler <- function(fun, ...) {
zz <- textConnection("foo", "w", local = TRUE)
sink(zz, type = "message")
res <- fun(...)
sink(type = "message")
close(zz)
#handle messages
list(res, messages = foo)
}
wrongURL <- function() {
remDr$navigate("mistake")
}
messageHandler(fun = wrongURL)