Todor Iliev Ответов: 0

Asp.net-core сквозное тестирование с помощью selenium


Итак, я пытаюсь уже несколько дней, и мне кажется, что я просто не могу понять или найти решение всего этого процесса. Я использую Selenium, чтобы имитировать пользовательский ввод на моем "веб-сайте". Всякий раз, когда я пытаюсь выполнить свои тестовые методы, он говорит, что они оба не были выполнены, без каких-либо признаков ошибок.

Что я уже пробовал:

Это мой тестовый код. Я пытаюсь протестировать имитированный пользовательский ввод в Chrome и Edge, но он просто не выполняет его. IDE также не находит никаких ошибок кода:
namespace EndToEnd
{
    [TestClass]
    public class BookingCreateUITest
    {
        private string _websiteURL = "https://localhost:44325/";
        private RemoteWebDriver _browserDriver;
        public Microsoft.VisualStudio.TestTools.UnitTesting.TestContext TestContext { get; set; }

        [TestInitialize]
        public void Initialize() 
        {
           _websiteURL = (string)TestContext.Properties["webAppUrl"];
        }


        [TestMethod]
        [TestCategory("Selenium")]
        [DataRow("10.2", "100", "2021-06-15T13:45:09", "2021-06-16T13:45:09")]
        [DataRow("200", "200", "2021-06-15T13:45:09", "2021-06-16T13:45:09")]
        [DataRow("10.2", "100", null, "20021-06-16T13:45:09")]
        public void CreateBookingChrome(string chargeState, string distance, string starttime, string endtime) 
        {
            //Arrange
            _browserDriver = new ChromeDriver();
            _browserDriver.Manage().Window.Maximize();
            _browserDriver.Navigate().GoToUrl(_websiteURL + "Booking/Create");
            Thread.Sleep(1000);

            _browserDriver.FindElementById("ChargeState").SendKeys(chargeState);
            _browserDriver.FindElementById("Distance").SendKeys(distance);
            _browserDriver.FindElementById("Starttime").SendKeys(starttime);
            _browserDriver.FindElementById("Endtime").SendKeys(endtime);
            //_browserDriver.FindElementById("ConnectorType").SendKeys(connectorType);

            //create Screenshot (optional)
            var screenshot = _browserDriver.GetScreenshot();
            var filename = $"{distance}.jpg";
            screenshot.SaveAsFile(filename, OpenQA.Selenium.ScreenshotImageFormat.Jpeg);
            TestContext.AddResultFile(filename);

            //Act
            _browserDriver.FindElementById("CreateButton").Click();
            Thread.Sleep(1000);
             

            //Assert
            Assert.IsTrue(_browserDriver.PageSource.Contains(chargeState));
            Assert.IsTrue(_browserDriver.PageSource.Contains(distance));
            Assert.IsTrue(_browserDriver.PageSource.Contains(starttime));
            Assert.IsTrue(_browserDriver.PageSource.Contains(endtime));
            //Assert.IsTrue(_browserDriver.PageSource.Contains(connectorType));
        }

        [TestMethod]
        [TestCategory("Selenium")]
        [DataRow("10.2", "100", "2021-06-15T13:45:09", "2021-06-16T13:45:09")]
        [DataRow("200", "200", "2021-06-15T13:45:09", "2021-06-16T13:45:09")]
        [DataRow("10.2", "100", null, "2009-06-15T13:45:09")]
        public void CreateBookingEdge(string chargeState, string distance, string starttime, string endtime)
        {
            //Arrange
            _browserDriver = new EdgeDriver();
            _browserDriver.Manage().Window.Maximize();
            _browserDriver.Navigate().GoToUrl(_websiteURL + "Booking/Create");
            Thread.Sleep(1000);

            _browserDriver.FindElementById("ChargeState").SendKeys(chargeState);
            _browserDriver.FindElementById("Distance").SendKeys(distance);
            _browserDriver.FindElementById("Starttime").SendKeys(starttime);
            _browserDriver.FindElementById("Endtime").SendKeys(endtime);
            //_browserDriver.FindElementById("ConnectorType").SendKeys(connectorType);

            //create Screenshot (optional)
            var screenshot = _browserDriver.GetScreenshot();
            var filename = $"{distance}.jpg";
            screenshot.SaveAsFile(filename, OpenQA.Selenium.ScreenshotImageFormat.Jpeg);
            TestContext.AddResultFile(filename);

            //Act
            _browserDriver.FindElementById("CreateButton").Click();
            Thread.Sleep(1000);

            //Assert
            Assert.IsTrue(_browserDriver.PageSource.Contains(chargeState));
            Assert.IsTrue(_browserDriver.PageSource.Contains(distance));
            Assert.IsTrue(_browserDriver.PageSource.Contains(starttime));
            Assert.IsTrue(_browserDriver.PageSource.Contains(endtime));
            //Assert.IsTrue(_browserDriver.PageSource.Contains(connectorType));
        }
    }
}


Это точка зрения, к которой он относится:
@model Sopro.Models.BookingModel

@{
    ViewData["Title"] = "Create";
}


<h3>Neue Buchung erstellen</h3>
<hr />
    <div class="row">
        <div class="col-md-4">
            <form asp-action="Create">
                <div asp-validation-summary="ModelOnly" class="text-danger"></div>
                <div class="form-group">
                    <label asp-for="chargeState" class="control-label"></label>
                    <input asp-for="chargeState" class="form-control" id="ChargeState"/>
                    <span asp-validation-for="chargeState" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <label asp-for="distance" class="control-label"></label>
                    <input asp-for="distance" class="form-control" id="Distance"/>
                    <span asp-validation-for="distance" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <label asp-for="startTime" class="control-label"></label>
                    <input asp-for="startTime" class="form-control" type="datetime" id="Starttime" />
                    <span asp-validation-for="startTime" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <label asp-for="endTime" class="control-label"></label>
                    <input asp-for="endTime" class="form-control" type="datetime" id="Endtime"/>
                    <span asp-validation-for="endTime" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <label asp-for="connectorType" class="control-label"></label>
                    <select asp-for="connectorType" class="form-control">
                        <option value="Schuko_Socket">Schuko-Socket</option>
                        <option value="Type_1_Plug">Type 1-Plug</option>
                        <option value="Type_2_Plug">Type 2-Plug</option>
                        <option value="CHAdeMO_Plug">CHAdeMO-Plug</option>
                        <option value="Tesla_Supercharger">Tesla Supercharger</option>
                        <option value="CCS_Combo_2_Plug">CCS Combo 2-Plug</option>
                    </select>
                    <span asp-validation-for="connectorType" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <input type="submit" value="Erstellen" class="btn btn-primary" id="CreateButton"/>
                </div>
            </form>
        </div>
    </div>

<div>
        <a asp-action="Index">Zurück zur Buchungsübersicht</a>
    </div>

@section Scripts {
        @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}

0 Ответов