Как перехватить страницу ошибки на веб-сайте, который выдает системную ошибку / ошибку сервера в Selenium Webdriver c # и терпит неудачу в моем тестовом случае Nunit - PullRequest
0 голосов
/ 30 мая 2019

Я пытался найти способы отловить эту ошибку в моем селеновом веб-драйвере c #. Есть ли какой-нибудь метод, который перехватит эту ошибку в моем тестовом примере?Произошла системная ошибка или ошибка сервера, но я не могу найти свою ошибку и провалить мои тесты.Все мои тесты, в которых есть эти ошибки (система / сервер), заканчиваются результатом = "Тест пройден" вместо отображения ошибки.

Например: Нажмите, чтобы просмотреть ServerError

Например: нажмите, чтобы просмотреть системную ошибку

[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);
    }

Этот код показывает системную ошибку (как показано на рисунке), но, как я показываю в моем тестовом примере.

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Я могу думать только о том, что если 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");
            }

            }
0 голосов
/ 30 мая 2019

Используйте блок try-catch, чтобы обработать любое исключение, и при необходимости вы можете зарегистрировать его в блоке catch. Вы должны использовать любую библиотеку утверждений, чтобы она прошла / не прошла.

Примечание. Не записывайте все в класс Test.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...