c# - Selenium-RC 无法处理确认框

标签 c# nunit selenium selenium-rc

我正在测试一个网络应用程序,我从列表中删除一个项目。单击删除后,应用程序会要求确认。 Selenium IDE 将其检测为确认框。当我通过 RC (C#) 运行代码时,它甚至捕捉到确认框,在该确认框上执行删除按钮的单击,但是,确认框在屏幕上永远不可见。此外,它仅单击删除按钮;该项目不会被删除。我手动尝试过,工作正常。

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

代码如下:

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 中工作是有问题的。
谢谢,
瓦米普

最佳答案

有许多命令可以处理 JavaScript 确认。默认情况下,Selenium 将在确认时选择“确定”,除非您发送 chooseCancelOnNextConfirmation 命令。为了使用确认,您需要使用 getConfirmation 命令。

上述命令的 Selenium 引用:

此外,如果您的 click 命令没有显示 JavaScript 确认,您可能会发现相应的事件没有被触发。您可以尝试使用 mouseDownmouseUp 命令,或 fireEvent 命令。

关于c# - Selenium-RC 无法处理确认框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3183515/

相关文章:

c# - 更新数据表中的单元格

c# - Xpath - 基于多个标准的选择

unit-testing - 用于比较 NUnit 中的文本文件的单元测试

.net - NUnit,如何在运行测试套件之前和之后执行源代码

java - 验证 selenium 中的动态页面

python - 如何使用Python从网页下载所有图像?

c# - 如何使用内置的 .NET 功能检测输入的字符串字符语言?

c# - DatetimeOffset 和 Sqlite

c# - 如何将此文件加载到 NUnit 测试中?

Selenium Maven 项目