using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Support.UI; using OpenQA.Selenium; using SeleniumExtras.WaitHelpers; namespace TestProject { internal class Test { private IWebDriver driver; [SetUp] public void Setup() { ChromeOptions options = new ChromeOptions(); driver = new ChromeDriver(options); driver.Manage().Window.Maximize(); } [TearDown] public void Teardown() { driver.Quit(); driver.Dispose(); } [Test, Order(1)] public void TestEditAboutMe() { HomePage homePage = new HomePage(driver); homePage.Open(); homePage.EditAboutMe("123"); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); var aboutMe = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//div[@class='description___mK5Ei']"))); string aboutMeText = aboutMe.Text; Assert.That(aboutMeText, Is.EqualTo("123"), "Текст 'Обо мне' не обновился корректно"); } [Test, Order(2)] public void TestChechMyOrders() { HomePage homePage = new HomePage(driver); homePage.Open(); homePage.ChechMyOrders(); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); var ordersMy = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//h1[@class='title___cqhOe']"))); string ordersMyText = ordersMy.Text; Assert.That(ordersMyText, Is.EqualTo("Ваша история заказов пуста!"), "Ваша история заказов не пуста"); } [Test, Order(3)] public void TestChechMyFavorites() { HomePage homePage = new HomePage(driver); homePage.Open(); homePage.ChechMyFavorites(); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); var favoritesMy = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//span[@class='tabCount___uTpw6']"))); string favoritesMyText = favoritesMy.Text; Assert.That(favoritesMyText, !Is.EqualTo("0"), "Ваши избранные пусты"); } [Test, Order(4)] public void TestCheckMyBalance() { HomePage homePage = new HomePage(driver); homePage.Open(); homePage.CheckMyBalance(); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); var balanceMy = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//span[@class='balanceTitle____rGLb']"))); string balanceMyText = balanceMy.Text; Assert.That(balanceMyText, Is.EqualTo("У вас 0 ₽"), "Ваш баланс не нулевой пусты"); } [Test, Order(5)] public void TestSearchProduct_positive() { HomePage homePage = new HomePage(driver); homePage.Open(); homePage.SearchForProduct("часы"); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); var firstProduct = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//div[contains(@class, 'name___asFfu')]"))); Assert.That(firstProduct.Displayed, Is.True); } [Test, Order(6)] public void TestSearchProduct_negative() { HomePage homePage = new HomePage(driver); homePage.Open(); homePage.SearchForProduct("абвгд"); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); var noResultsMessage = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//div[contains(text(), 'Ничего не найдено')]"))); Assert.That(noResultsMessage.Displayed, Is.True, "Такого товара нет"); } [Test, Order(7)] public void TestSortByPriceAscending() { HomePage homePage = new HomePage(driver); homePage.Open(); homePage.SearchForProduct("часы"); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); homePage.SortByPriceAscending(); var firstProductPrice = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//a[contains(@href, '/s.origPrice.asc')]"))); Assert.That(firstProductPrice.Text.Contains("По возрастающей цене"), Is.True); } [Test, Order(8)] public void TestFilterByPrice() { HomePage homePage = new HomePage(driver); homePage.Open(); homePage.SearchForProduct("часы"); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); homePage.FilterByPrice(100, 200); var priceRangeMessage = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//input[@name='min']"))); Assert.That(priceRangeMessage.Displayed, Is.True); } [Test, Order(9)] public void TestAddToFavorites() { HomePage homePage = new HomePage(driver); homePage.Open(); homePage.AddFavorites("25 игл из нержавеющей стали с большим ушком для вышивания"); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); var favoriteItem = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//div[contains(@class, 'product___F_mly withFavorite___BnFAs product___crBKK')]"))); Assert.That(favoriteItem.Displayed, Is.True); } [Test, Order(10)] public void TestDeleteToFavorites() { HomePage homePage = new HomePage(driver); homePage.Open(); homePage.DeleteFavorites(); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); var favoriteItem = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//div[contains(@class, 'name___asFfu')]"))); string favoriteItemMyText = favoriteItem.Text; Assert.That(favoriteItemMyText, !Is.EqualTo("25 игл из нержавеющей стали с большим ушком для вышивания"), "В избранных присутствует данный товар"); } [Test, Order(11)] public void TestAddToCart() { HomePage homePage = new HomePage(driver); homePage.Open(); homePage.AddToCart(); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); var cartItem = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//label[contains(@for, 'cartitem-645ba6bfc5f8072cf93cead8') and contains(., '25 игл из нержавеющей стали с большим ушком для вышивания')]"))); string cartItemText = cartItem.Text; Assert.That(cartItemText, Is.EqualTo("25 игл из нержавеющей стали с большим ушком для вышивания"), "В корзине отсутствует данный товар"); } [Test, Order(12)] public void TestUpdateCountProduct() { HomePage homePage = new HomePage(driver); homePage.Open(); homePage.UpdateCountProduct(); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); var countItem = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//div[contains(@class, 'count___WGjOX')]"))); string countItemText = countItem.Text; Assert.That(countItemText, Is.EqualTo("2"), "В корзине другое количество товара"); } [Test, Order(13)] public void TestDeleteProductToCart() { HomePage homePage = new HomePage(driver); homePage.Open(); homePage.DeleteProductToCart(); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); var cartItem = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//h1[contains(@class, 'header___ohk0y') and contains(., 'Ваша корзина пуста')]"))); string cartItemText = cartItem.Text; Assert.That(cartItemText, Is.EqualTo("Ваша корзина пуста"), "Ваша корзина не пуста"); } } }