Я не уверен на 100%, что это то, что вам нужно, но, возможно, я все равно помогу.Насколько я понимаю, ваш вопрос заключается в том, что вы хотите «принудительно» спасти необработанные оповещения.
При использовании такого утверждения, как функция поиска элемента, из-за превышения времени ожидания я использую следующий код для многократного поискадля элемента.
!20.times { break if (selenium.is_visible(driver.find_element(:id, 'loginid')) rescue false ) ; sleep 1 }
Вышеприведенное будет зациклено 20 раз (ожидая 1 секунду каждый раз), пытаясь найти элемент и сломаться, когда он его найдет.Обратите внимание, что я пока не спасаю его, так как это более надежно, чтобы поместить это между началом / концом.Примерно так ..:
begin
!20.times { break if (selenium.is_visible(driver.find_element(:id, 'loginid')) rescue false ) ; sleep 1 }
[your executing code here] .
.
.
usr = driver.find_element(:id, 'loginid').click
usr = driver.find_element(:id, 'loginid').send_keys(username)
.
.
rescue
.
.
[your rescure code here]
.
.
puts "____________________________________________________________________"
puts "*** FATAL ERROR --> located at login area (username/password) ***"
puts "Possible reasons for this error..:"
puts "Invalid credentials * Cannot locate element id * "
puts "____________________________________________________________________"
.
end
Надеюсь, это поможет!