C# 如何在Selenium中处理弹出窗口?

C# 如何在Selenium中处理弹出窗口?,c#,selenium,C#,Selenium,我是selenium的新手,我正在尝试为登录页面进行基本编程,当我输入错误的密码时,我会弹出一个对话框,上面显示无效的密码或带有ok按钮的用户名,但selenium RC无法识别该弹出窗口,我如何编写代码使selenium能够识别该窗口。这是我使用的代码 public void nlogin() { selenium.Open("/login.aspx"); selenium.Type("Login1_UserName", "abc

我是selenium的新手,我正在尝试为登录页面进行基本编程,当我输入错误的密码时,我会弹出一个对话框,上面显示无效的密码或带有ok按钮的用户名,但selenium RC无法识别该弹出窗口,我如何编写代码使selenium能够识别该窗口。这是我使用的代码

public void nlogin()
        {
            selenium.Open("/login.aspx");
            selenium.Type("Login1_UserName", "abcd");
            selenium.Type("Login1_Password", "welcome");
            try
            {
                selenium.Click("Login1_LoginButton");
                Assert.AreEqual("ok", selenium.GetAlert());
                selenium.WaitForPopUp("ok", "3000");
                selenium.Click("ok");

            }
               catch (Exception)
            {

            }
        }

请帮我解决这个问题。

使用
selenium.getAlert()
它将返回JavaScript警报中包含的字符串。

WaitForPopUp()
不是用于警报框,而是用于新的浏览器窗口。 您也不需要使用
Click()
来按下警报框上的ok按钮,
GetAlert()
为您执行此操作

您的代码应为:

public void nlogin()
    {
        selenium.Open("/login.aspx");
        selenium.Type("Login1_UserName", "abcd");
        selenium.Type("Login1_Password", "welcome");
        selenium.Click("Login1_LoginButton");
        Assert.AreEqual("ok", selenium.GetAlert());
    }
另外,
GetAlert()
获取警报框的内容,这肯定是某种警告消息,而不是文本“ok”


您可能想查看selenium的NDoc文档,可以找到该文档

请删除空的catch块并发布一些堆栈跟踪。(空的挡块总是错误的)。链路已断开。