如何在网站中捕获错误页面,该页面在Selenium Webdriver c#中抛出系统错误/服务器错误,并在我的测试用例



我一直在努力寻找在我的Selenium网络驱动程序c#中捕获此错误的方法。有什么方法可以在我的测试用例中捕获此错误吗?存在系统错误或服务器错误,但我无法检索错误并且测试用例失败。我所有具有这些错误的测试用例(系统/服务器)都以结果="测试通过"而不是显示错误结束。

例如:点击查看服务器错误

例如:点击查看系统错误

[Test]
public void TestYamaha()
{
driver = new ChromeDriver();
driver.Navigate().GoToUrl("http://192.161.0.1/iels-admin-dev/Login/Login.aspx");
driver.Manage().Window.Maximize();
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
driver.FindElement(By.Id("ctl00_MainContent_ucLogin_txtUserID")).Click();
driver.FindElement(By.Id("ctl00_MainContent_ucLogin_txtUserID")).Click();
driver.FindElement(By.Id("ctl00_MainContent_ucLogin_txtUserID")).SendKeys("manteng");
driver.FindElement(By.Id("ctl00_MainContent_ucLogin_txtPassword")).SendKeys("Nic15742368");
driver.FindElement(By.Id("ctl00_MainContent_ucLogin_cmdLogin")).Click();
Thread.Sleep(2000);
driver.Navigate().GoToUrl("http://192.161.0.1/iels-admin-dev/Announcement_News/Announcement_News_Search.aspx");
Thread.Sleep(2000);
driver.FindElement(By.CssSelector(".ui-datepicker-trigger:nth-child(2)")).Click();
Thread.Sleep(2000);
driver.FindElement(By.CssSelector(".ui-icon-circle-triangle-w")).Click();
Thread.Sleep(2000);
driver.FindElement(By.LinkText("1")).Click();
Thread.Sleep(2000);
driver.FindElement(By.Id("ctl00_MainContent_cmdSubmit")).Click();
Thread.Sleep(2000);
driver.FindElement(By.CssSelector(".clsDataGridAltData a:nth-child(2) > img")).Click();
Thread.Sleep(2000);
driver.FindElement(By.Id("ctl00_MainContent_cmdSubmit")).Click();
Thread.Sleep(2000);
}

此代码显示系统错误(如图所示),但我如何在测试用例中显示的。

使用 try-catch 块来处理任何异常,如果需要,您可以将其记录在 catch 块中。您应该使用任何断言库来使其通过/失败。

注意:不要将所有内容都写入测试类。

我只能想到如果URL包含"错误",它将截图并使测试用例失败。

if (url.Contains("error") || url.Contains("Error") == true)
{
Base.ErrorMessage(driver, element);  // screenshot the page 
throw new SystemException("Webpage throw error");
//Console.WriteLine("Got");
}
else
{
Console.WriteLine("Passed");
}
}

最新更新