Как утверждать в селен вебдрайвер в C #? - PullRequest
0 голосов
/ 04 октября 2019

Я работаю с Selenium WebDriver в C #, и мне нужно создать службу для кандидата. Я уже сделал это, но после того, как я подтвердил, что служба переходит в Список (Службы, которые необходимо подтвердить от другого пользователя), который увеличивается на 1 в режиме чтения. Есть ли способ как утверждать эти значения, которые увеличиваются на 1 каждый раз, когда добавляется новый сервис?

Ответы [ 2 ]

3 голосов
/ 04 октября 2019

Для этого вам нужно использовать тестовый фреймворк - сам селен не может за вас утверждать.

Если вы используете C #, я рекомендую установить NUnit. Вы можете найти это в диспетчере пакетов NuGet, и вам также нужно установить NUnitTestAdapter, если вы используете Visual Studio.

После того, как вы установили тестовую среду в свой проект, вы можете использовать [Test]флаги для обозначения методов точки входа для тестовых случаев и использования операторов Assert, которые являются частью пространства имен NUnit.

Документацию можно найти здесь: https://github.com/nunit/docs/wiki/NUnit-Documentation

1 голос
/ 08 октября 2019

Встроенная функция подтверждения в Selenium существует только в SeleniumIDE, надстройке браузера «укажи и щелкни», доступной для Chrome и Firefox.

Если вы собираетесь писать свои тесты на C #, как сказала Кристина, вам нужно использовать среду модульного тестирования. Например, я использую Xunit, и простой тест выглядит следующим образом:

using Xunit;                   // Testing framework.  NuGet package
using OpenQA.Selenium.Firefox; // Driver for Firefox
using Xunit.Priority;          // NuGet add-on to Xunit that allows you to order the tests
using OpenQA.Selenium;         // NuGet package 
using System.Diagnostics;      // Can Debug.Print when running tests in debug mode

namespace Test_MyWebPage
{
    [TestCaseOrderer(PriorityOrderer.Name, PriorityOrderer.Assembly)] // Set up ordering
    public class Test_BasicLogin : IDisposable
    {
       public static IWebDriver driver = new FirefoxDriver(@"path\to\geckodriver");

       // Here be the tests...
       [Fact, Priority(0)]
       public void Test_LaunchWebsite()
       {
           // Arrange
           var url = "https://yourserver.yourdomain/yourvirtualdir";

           // Act

           // Sets browser to maximized, allows 1 minute for the page to
           // intially load, and an implicit time out of 1 minute for elements
           // on the page to render.
           driver.Manage().Window.Maximize();
           driver.Manage().Timeouts().PageLoad = new TimeSpan(0, 1, 0);
           driver.Manage().Timeouts().ImplicitWait = new TimeSpan(0, 1, 0);

           driver.url = url;  // Launches the browser and opens the page

           /* Assuming your page has a login prompt 
           /* we'll try to locate this element 
           /* and perform an assertion to test that the page comes up
           /* and displays a login prompt */

           var UserNamePrompt = driver.FindElement(By.Id("userLogin_txtUserName"));   

           // Assert
           Assert.NotNull(UserNamePrompt); // Bombs if the prompt wasn't found.
           Debug.Print("Found User Name Prompt successfully.");
        }

        public void Dispose()
        {
           // Properly close the browser when the tests are done
            try
            {
                driver.Quit();
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"Error disposing driver: {ex.Message}");
            }
        }
    }
}

Как видите, настройка тестов для Selenium WebDriver значительно больше, чем настройка простого дыматесты с SeleniumIDE. Я не говорил о том, как правильно хранить ваши конфиги (жесткое кодирование, как в примере, это плохо), и вам придется адаптировать операторы driver.find () в соответствии с вашей конкретной ситуацией. Я использую пакет Xunit.Priority, чтобы убедиться, что тесты не все работают параллельно;Мне нужно проверить одну вещь за один раз в прогрессии. Ваши потребности могут быть удовлетворены путем помещения всех шагов в один метод Test_ *. Каждый метод отображается в виде отдельного теста в окне обозревателя тестов Visual Studio. Если щелкнуть правой кнопкой мыши тест в проводнике тестов и выбрать «Отладить выбранные тесты», вы сможете установить точки останова, а также включить отображение методов Debug.Print (или Debug.Write / Writeline) в разделе «Тесты» окна вывода VS.

Другая проблема заключается в настройке IWebDriver: не указывайте путь complete , включая исполняемый файл, только путь к папке, в которой он находится.

Удачи и счастливого тестирования!

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