3

我刚刚读到新的 Watir 版本(3.1.0)具有“对 Alert API 的支持”。我实际上可以用这个 API 做什么?

它是用来处理javascript弹出窗口的吗?如果是这样,我可以使用什么命令在弹出窗口中单击“确定”?或者我如何阅读弹出窗口的标题和文本?

我在将 Watir 更新到 3.1.0 后尝试了“ browser.alert.ok”,但只是收到了一些错误消息......

(目前还没有任何明确的文档,试图解释源代码并不是我最强的一面......)

4

2 回答 2

2

Alert API 用于处理 JavaScript 弹出窗口。

browser.alert.ok应该管用。你能提供错误信息吗?

我不确定是否要获得弹出标题,但您可以通过以下方式获得它的文本browser.alert.text

更多信息:http ://watir.github.io/docs/javascript-dialogs/

于 2012-08-27T15:48:32.780 回答
0

browser.alert.ok 应该可以工作。你能提供错误信息吗?

当然。首先,这是我使用的 Watir 代码:

require 'watir'
b = Watir::Browser.start "www.w3schools.com/js/tryit.asp?filename=tryjs_alert"
b.maximize
b.frame(:name, "view").button(:text, "Show alert box").click_no_wait
sleep 2
b.alert.ok

这是错误消息:

C:/Ruby192/lib/ruby/gems/1.9.1/gems/rautomation-0.7.2/lib/rautomation/adapter/win_32/functions.rb:319: [BUG] 分割错误 ruby​​ 1.9.2p290 (2011- 07-09) [i386-mingw32]

-- 控制框架 ---------- c:0012 p:---- s:0052 b:0052 l:000051 d:000051 CFUNC :enum_child_windows c:0011 p:0065 s:0046 b:0046 l:002478 d:002478 方法 C:/Ruby192/lib/ruby/gems/1。9.1/gems/rautomation-0.7.2/lib/rautomation/adapter/win_32/functions.rb:319 c:0010 p:0015 s:0038 b:0038 l:0018e4 d:0018e4 方法 C:/Ruby192/lib/ruby /宝石/1。9.1/gems/rautomation-0.7.2/lib/rautomation/adapter/win_32/functions.rb:200 c:0009 p:0025 s:0033 b:0033 l:000032 d:000032 方法 C:/Ruby192/lib/ruby /宝石/1。9.1/gems/rautomation-0.7.2/lib/rautomation/adapter/win_32/functions.rb:147 c:0008 p:0035 s:0025 b:0024 l:000023 d:000023 方法 C:/Ruby192/lib/ruby /宝石/1。9.1/gems/rautomation-0.7.2/lib/rautomation/adapter/win_32/window.rb:247 c:0007 p:0017 s:0020 b:0020 l:000019 d:000019 方法 C:/Ruby192/lib/ruby /宝石/1。9.1/gems/rautomation-0.7.2/lib/rautomation/window.rb:220 c:0006 p:---- s:0015 b:0015 l:000014 d:000014 完成 c:0005 p:0079 s:0013 b:0013 l:000012 d:000012 方法 C:/Ruby192/lib/ruby /宝石/1。9.1/gems/watir-classic-3.1.0/lib/watir-classic/dialogs/alert.rb:38 c:0004 p:0011 s:0010 b:0010 l:000009 d:000009 方法 C:/Ruby192/lib /红宝石/宝石/1。9.1/gems/watir-classic-3.1.0/lib/watir-classic/dialogs/alert.rb:27 c:0003 p:0107 s:0007 b:0007 l:00043c d:0018c0 EVAL C:/watir_testit/pop .rb:6 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 完成

c:0001 p:0000 s:0002 b:0002 l:00043c d:00043c 顶部

-- Ruby 级别的回溯信息 ---------------------------------------- C:/watir_testit /pop.rb:6:in <main>' C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-classic-3.1.0/lib/watir-classic/dialog s/alert.rb:27:inok' C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-classic-3.1.0/lib/watir-classic/dialog s/alert.rb:38:在dialog' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rautomation-0.7.2/lib/rautomation/window.rb: 220:inmethod_missing' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rautomation-0.7.2/lib/rautomation/adapter/win_32/window.rb:247:in child' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rautomation-0.7.2/lib/rautomation/adapter/wi n_32/functions.rb:147:inchild_window_locators' C:/Ruby192/lib /ruby/gems/1.9.1/gems/rautomation-0.7.2/lib/rautomation/adapter/win_32/functions.rb:200:in control_hwnd' C:/Ruby192/lib/ruby/gems/1.9.1/gems/rautomation-0.7.2/lib/rautomation/adapter/wi n_32/functions.rb:319:infind_hwnd' C:/Ruby192/lib/ruby/gems/1.9.1/ gems/rautomation-0.7.2/lib/rautomation/adapter/win_32/functions.rb:319:in `enum_child_windows'

[注意] 您可能在 Ruby 解释器或扩展库中遇到了错误。欢迎提交错误报告。详情:http ://www.ruby-lang.org/bugreport.html

此应用程序已请求运行时以不寻常的方式终止它。请联系应用程序的支持团队以获取更多信息。

于 2012-08-27T17:11:53.237 回答