C# 如何在Selenium中处理弹出窗口?
我是selenium的新手,我正在尝试为登录页面进行基本编程,当我输入错误的密码时,我会弹出一个对话框,上面显示无效的密码或带有ok按钮的用户名,但selenium RC无法识别该弹出窗口,我如何编写代码使selenium能够识别该窗口。这是我使用的代码C# 如何在Selenium中处理弹出窗口?,c#,selenium,C#,Selenium,我是selenium的新手,我正在尝试为登录页面进行基本编程,当我输入错误的密码时,我会弹出一个对话框,上面显示无效的密码或带有ok按钮的用户名,但selenium RC无法识别该弹出窗口,我如何编写代码使selenium能够识别该窗口。这是我使用的代码 public void nlogin() { selenium.Open("/login.aspx"); selenium.Type("Login1_UserName", "abc
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块并发布一些堆栈跟踪。(空的挡块总是错误的)。链路已断开。