2016-04-24 60 views
0

我使用Rselenium,我有$clickElement()有時不起作用,在這種情況下,我希望R做其他事情。我很熟悉:if(inherits(temp1, 'try-error')) {do something},但在這種情況下我沒有任何對象(temp1),所以我不知道如何繼續。如果以前的命令返回錯誤,你如何執行某個命令?

這個工作,但顯然是草率的:

x <- "offending error message text" 
if(x == geterrmessage()){do something} 

回答

1

你可以試試這個:

假設:X是一個元素。

test <- try(x$clickElement(),silent=T) 

if (class(test) == 'try-error'){ 
    ## do the error handling 
} 

更新:由於@ 42-建議,你可以寫if (class(test) == 'try-error')if (inherits(test,'try-error'))

+2

更安全的是'如果(繼承(考 '試錯'))'。 (不是我的downvote,我認爲'嘗試'是正確的方向) –

+0

@ 42-非常感謝您的建議。 –

+1

如果那個downvoter可以拿出更好的答案,我會非常高興。畢竟,我們都在這裏學習新事物。 –