Наш сайт имеет несколько всплывающих окон javascript на всем сайте. Когда вы нажимаете кнопку, чтобы открыть всплывающее окно, экран слегка серо, а анимированное изображение показывает, а затем загружает фактическое всплывающее окно. Когда всплывающее окно закрывается, оно исчезает вместе со слегка серым экраном. Я могу открыть и использовать wait_until_present, чтобы нажать кнопку закрытия, но мои тесты всегда терпят неудачу, потому что следующий элемент не доступен для кликов. Он будет работать со спинами, но хочет держаться подальше от этого. Я попытался использовать другие методы ожидания для следующего элемента, но не могу найти лучший способ. Ниже приведен пример того, что я пытаюсь сделать.Нажатие на элемент после того, как анимированное всплывающее окно закрывается
require 'watir-webdriver'
browser = Watir::Browser.new :chrome
browser.goto('www.hayneedle.com')
browser.img(:src, 'http://images.hayneedle.com/shared/images/HN_Free_Shipping_Easy_Returns_Low.png').click
browser.a(:id, 'hn_modal_close').wait_until_present
browser.a(:id, 'hn_modal_close').click
#this is the element that is not clickable because the popup is still closing
browser.a(:href, 'http://www.hayneedle.com/bath/').click
Oh man Спасибо! Я пытался это, но использовал неправильный div, тот, что был выше hn_modal_bg. Еще раз спасибо! –
Удался с этой техникой. Нам нужно было нажать кнопку после того, как диалоговое окно JQuery исчезло, изначально я попробовал дождаться нажатия кнопки, но я продолжал получать исключения. Наконец использовал этот подход, и теперь он работает каждый раз. –