216 lines
8.5 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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("Ваша корзина пуста"), "Ваша корзина не пуста");
}
}
}