У меня есть механизация функции, чтобы зарегистрировать меня из сайта, но в очень редких случаях, когда меня нет. Функция включает в себя переход на определенную страницу, а затем нажав кнопку выхода из системы. На случай, когда механизация страдает от времени ожидания, когда выйдите на страницу выхода из системы, либо нажав кнопку «Выход». Поэтому я положил в небольшой спасение, и, кажется, работает как видно ниже первого куска кода.
def logmeout(agent)
page = agent.get('http://www.example.com/')
agent.click(page.link_with(:text => /Log Out/i))
end
LOGMEOUT С RESCUE:
def logmeout(agent)
begin
page = agent.get('http://www.example.com/')
agent.click(page.link_with(:text => /Log Out/i))
rescue Timeout::Error
puts "Timeout!"
retry
end
end
Предполагая, что я правильно понимаю спасение, он будет делать оба действия, даже если только нажав на нажатие, поэтому в попытке быть эффективным, мне было интересно, сможете ли я использовать в этой ситуации и пропустите его код кода. Будет что-то вроде этой работы:
def trythreetimes
tries = 0
begin
yield
rescue
tries += 1
puts "Trying again!"
retry if tries <= 3
end
end
def logmeout(agent)
trythreetimes {page = agent.get('http://www.example.com/')}
trythreetimes {agent.click(page.link_with(:text => /Log Out/i))}
end
Примечание. В моих функциях TrythReetimes я оставил ее как общая спасение, поэтому функция будет более повторно использовать.
Большое спасибо за любую помощь, которую кто-нибудь может предоставить, я понимаю, что здесь есть пара разных вопросов, но они все, что я пытаюсь учиться!