Во-первых, здесь есть интересные методы ожидания: Как использовать Watir :: Waiter :: wait_until, чтобы заставить Chrome ждать?
В целом, я не совсем понимаю вашепроблема.Насколько я понимаю твой скрипт работает.Если бы вы могли немного прояснить свои желания по сравнению с тем, что у вас уже есть, это могло бы помочь, как и пример исходного кода.
Если вы ищете идеи по пользовательскому ожиданию, вы можете проверить изменения вHTML-код вашей страницы, формы или текстового поля.Вы можете проверить, что текстовое поле является .visible ?.Вы можете попытаться получить доступ к следующему текстовому полю (например, щелкнуть по нему или задать значение), затем перехватить исключение, если оно не может найти текстовое поле, и повторить попытку, пока оно не прервется, что решит обе ваши проблемы сразу.
Почему нажатие за пределами текущего поля было бы плохим решением?Вам абсолютно необходим следующий шаг для доступа к text_field?Я не понял, как существует следующее поле, только когда вы щелкаете за пределами текущего поля, но вы вызываете это обновление, открывая следующее поле.
Редактировать : Добро пожаловать,и спасибо за разъяснение, я думаю, теперь я понимаю лучше.Если вы разрешите Watir вызывать ожидание своей страницы или заставите его, тогда он будет ждать обновления, и вы сможете найти новое текстовое поле.Нажатие клавиш не вызывает ie.wait, поэтому, если вы отправляете одно нажатие клавиши, а затем вызываете ожидание, остальная часть вашего сценария будет реагировать на состояние после обновления.
Я настоятельно рекомендую OpenQAстраница ожидания в Watir .Если то, что вы делаете для вызова обновления, не появляется в списке вещей, которые вызывают ожидание страницы Watir, то вам нужно вызвать собственное ожидание страницы ... но вам нужно сделать это до обновления страницы, поэтому причинаобновление должно закончиться до окончания самого обновления.