代码之家  ›  专栏  ›  技术社区  ›  vamyip

无法处理确认框

  •  3
  • vamyip  · 技术社区  · 16 年前

    我正在测试一个从列表中删除项目的web应用程序。一旦点击删除,应用程序要求确认。Selenium IDE将其检测为确认框。当我通过RC(C#)运行代码时,它甚至捕捉到确认框,在确认框上单击delete按钮,但是确认框在屏幕上永远不可见。此外,它只点击删除按钮;该项目未被删除。我手动试过了,效果很好。

    请帮忙,我是硒的新手,尝试在多个论坛上找到答案,但都没有成功。

    string confirmation;
    for (int second = 0;; second++) {
        if (second >= 60) Assert.Fail("timeout");
        try
        {
            confirmation=selenium.GetConfirmation();
    
            if ((confirmation == " Delete confirmation message")) break;
    
        }
        catch (Exception e)
        {
            PrintLog("Error while waiting for confirmation. Error: "+e.Message);
        }
        Thread.Sleep(1000);
    }           
    
    try
    {
        Assert.IsTrue(confirmation == "Delete confirmation message");
    }
    catch (AssertionException e)
    {
        PrintLog(e.Message);
    }
    
    selenium.FireEvent("//a[@id='btnOkConfirm']","click");
    

    在最后一条语句之后,所选项目必须被删除,页面应该刷新,但是什么也没有发生。我只能看到“Javascript:;”写在firefox窗口的状态栏中。我想让javascript hrefs在selenium rc中工作是有问题的。
    谢谢,
    瓦米普

    2 回复  |  直到 16 年前
        1
  •  2
  •   Dave Hunt    16 年前
        2
  •  1
  •   vamyip    15 年前

    最近,我发现这种行为是由于selenium的体系结构(更确切地说,是基于javascript的内核)造成的。当我手动执行测试时,保持seleniumide的打开状态,就会复制这种行为。所以,我认为现在这个问题没有立即解决的办法。如果我找到解决方法,我会在这里发布。

    感谢戴夫的回复。


    更新:开发团队告诉我,在运行seleniumide时,没有调用javascript函数。这确实是Selenium的Javascript核心的一个问题。

    感谢所有花时间回答这个问题的人。

    当做,