gpt4 book ai didi

ruby - 在动画弹出窗口关闭后单击元素

转载 作者:数据小太阳 更新时间:2023-10-29 08:00:23 24 4
gpt4 key购买 nike

我们的网站在整个网站上都有多个 javascript 弹出窗口。当您单击以打开弹出窗口时,屏幕会略微变灰并显示动画图像,然后一旦加载了实际的弹出窗口。当弹出窗口关闭时,它会随着略带灰色的屏幕消失。我可以打开并使用 wait_until_present 单击关闭按钮,但我的测试总是失败,因为下一个元素不可单击。它可以与 sleep 一起使用,但要远离它。我曾尝试对下一个元素使用其他等待方法,但无法找出最佳方法。下面是我正在尝试做的一个例子。

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

最佳答案

等待某物可用的替代方法是等到某物不可用。在这种情况下,您似乎应该等待弹出窗口消失。

当我运行你的代码时,我得到了异常:

Element is not clickable at point (449, 142). Other element would receive the click: <div id="hn_modal_bg"></div> (Selenium::WebDriver::Error::UnknownError)

因此,我们可能应该等待 <div id="hn_modal_bg"></div>消失。这可以通过使用 wait_while_present 来完成。方法。

browser.a(:id, 'hn_modal_close').wait_until_present
browser.a(:id, 'hn_modal_close').click

#Wait for the gray background to disappear
browser.div(:id, 'hn_modal_bg').wait_while_present

browser.a(:href, 'http://www.hayneedle.com/bath/').click

关于ruby - 在动画弹出窗口关闭后单击元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17857530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com