繁体   English   中英

如何使用ruby watir脚本处理浏览器javascript确认导航警报

[英]How to handle browser javascript confirm navigation alert with ruby watir script

我想以编程方式处理javascript确认提醒,询问您是否要离开该页面(请参见下面的屏幕截图)。

谷歌浏览器提醒

到目前为止我尝试过的方法都没有用。

浏览器无法识别我为了想要离开页面而返回值true。

这是我尝试处理此警报的部分:

if  @b.div(:class, "infoMessageBox error").present?
        puts "There was an error"
        #@b.execute_script("window.confirm = function() {return true}")
        @b.execute_script("window.onbeforeunload = function() {};")
        @b.goto("#{@env}/TranslateFile.aspx")
        break
    end

我也读过这篇文章:“ 解雇”确认导航“弹出Watir ”,但本文中的方法对我的情况没有帮助。

我会得到一些帮助,因为我被困在这里。

这有助于解决我的问题。

我改进了代码,现在它工作得更好但是将来可能还会出现其他一些问题(希望不是)。

@b.refresh
if @b.alert.exists?
    @b.alert.text
    @b.alert.ok 
end
@b.goto("#{@env}/TranslateFile.aspx")

这帮助了我,现在它逃脱了警报并继续工作流程。 感谢帮助 ! :)

有关处理警报可能遇到问题的其他人的更多信息(链接位于下方):

# Check if alert is shown
browser.alert.exists?

# Get text of alert
browser.alert.text

# Close alert
browser.alert.ok
browser.alert.close
JAVASCRIPT CONFIRMS
# Accept confirm
browser.alert.ok

# Cancel confirm
browser.alert.close
JAVASCRIPT PROMPT
# Enter text to prompt
browser.alert.set "Prompt answer"

# Accept prompt
browser.alert.ok

# Cancel prompt
browser.alert.close

# don't return anything for alert
browser.execute_script("window.alert = function() {}")

# return some string for prompt to simulate user entering it
browser.execute_script("window.prompt = function() {return 'my name'}")

# return null for prompt to simulate clicking Cancel
browser.execute_script("window.prompt = function() {return null}")

# return true for confirm to simulate clicking OK
browser.execute_script("window.confirm = function() {return true}")

# return false for confirm to simulate clicking Cancel
browser.execute_script("window.confirm = function() {return false}")

# don't return anything for leave page popup
browser.execute_script("window.onbeforeunload = null")

来自watir的文档

答案是:您可以尝试使用替代方法,例如: @b.alert.exists? 如果它返回true ,则: @b.alert.close

我认为可以在将来帮助你

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM