使用马拉松测试 Tool/Ruby 检测是否出现具有特定 window 名称的警报

Detecting if an alert with a specific window name appears using Marathon Testing Tool/Ruby

我目前正在使用 Marathon(Java 用于测试的自动化工具),它在 Java 应用程序上运行 Ruby 脚本,并且需要检测是否出现特定警报。例如,我希望它在 while 循环中连续按 "Accept" 并在此过程中处理潜在的 pop-up 警报。

本次接受过程中只能出现2pop-up

如果出现 window 标题 "Are you sure?" 的弹出窗口,我希望它像往常一样按回车键或单击 "OK"。

但是,如果带有 window 标题 "Message" 的弹出窗口(表示错误),我希望它按 "OK" 并退出 while 循环。在我找到区分两个 pop-ups.

的方法后,退出 while 循环对代码来说应该是微不足道的

尝试使用 get_window 并检查标题是否符合您的预期。或者,您可以使用 driver.execute_script 执行任意 Java 代码,该代码可以查找警报 windows 并执行必要的操作。

#{{{ Marathon
require_fixture 'default'
#}}} Marathon

def test

    with_window("SwingSet3") {
        select("JOptionPane", "true")

        option = Random.rand(2)

        if(option == 0)
          click("Show Warning Dialog")
        else
          click("Show Confirmation Dialog")
        end

        if(get_window == "Warning Dialog Example")
          with_window("Warning Dialog Example") {
              click("OK")
          }
        end

        if(get_window == "Select an Option")
          with_window("Select an Option") {
              click("Yes")
          }

          with_window("Message") {
              click("OK")
          }
        end
    }

end