簡體   English   中英

捕獲R Selenium錯誤消息並將其寫入日志

[英]Catch R Selenium error message and write it to log

我計划通過RSelenium進行一些刮擦。 有時抓取失敗,我想知道原因。 我注意到錯誤消息(紅色)非常有用,但我不知道如何記錄它們。

可以說我提供了“格式不正確的網址”。:

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)

我通過errorDetails()找到了一種方法:

tryCatch(
  expr = remDr$navigate("i.am.not.an.url"),
  error = function(error){
    return(remDr$errorDetails()$localizedMessage)
  }  
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM