2025-02-15 20:08:33 +04:00
|
|
|
|
using OpenQA.Selenium.Chrome;
|
2025-02-15 19:42:01 +04:00
|
|
|
|
using OpenQA.Selenium.Support.UI;
|
|
|
|
|
using OpenQA.Selenium;
|
|
|
|
|
using SeleniumExtras.WaitHelpers;
|
|
|
|
|
|
|
|
|
|
namespace TestProject
|
|
|
|
|
{
|
2025-02-15 20:08:33 +04:00
|
|
|
|
internal class Test
|
2025-02-15 19:42:01 +04:00
|
|
|
|
{
|
|
|
|
|
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)]
|
2025-02-15 23:11:44 +04:00
|
|
|
|
public void TestEditAboutMe()
|
2025-02-15 19:51:13 +04:00
|
|
|
|
{
|
2025-02-15 19:42:01 +04:00
|
|
|
|
HomePage homePage = new HomePage(driver);
|
|
|
|
|
homePage.Open();
|
|
|
|
|
|
2025-02-15 23:11:44 +04:00
|
|
|
|
homePage.EditAboutMe("123");
|
2025-02-15 19:42:01 +04:00
|
|
|
|
|
2025-02-15 23:11:44 +04:00
|
|
|
|
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"), "Текст 'Обо мне' не обновился корректно");
|
2025-02-15 19:42:01 +04:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test, Order(2)]
|
2025-02-15 23:11:44 +04:00
|
|
|
|
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)]
|
2025-02-15 19:42:01 +04:00
|
|
|
|
public void TestSearchProduct_positive()
|
|
|
|
|
{
|
|
|
|
|
HomePage homePage = new HomePage(driver);
|
|
|
|
|
homePage.Open();
|
2025-02-15 20:08:33 +04:00
|
|
|
|
homePage.SearchForProduct("часы");
|
2025-02-15 19:42:01 +04:00
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-15 23:11:44 +04:00
|
|
|
|
[Test, Order(6)]
|
2025-02-15 19:42:01 +04:00
|
|
|
|
public void TestSearchProduct_negative()
|
|
|
|
|
{
|
|
|
|
|
HomePage homePage = new HomePage(driver);
|
|
|
|
|
homePage.Open();
|
2025-02-15 20:08:33 +04:00
|
|
|
|
homePage.SearchForProduct("абвгд");
|
2025-02-15 19:42:01 +04:00
|
|
|
|
|
|
|
|
|
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
|
2025-02-15 20:08:33 +04:00
|
|
|
|
var noResultsMessage = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//div[contains(text(), 'Ничего не найдено')]")));
|
2025-02-15 19:42:01 +04:00
|
|
|
|
|
2025-02-15 23:23:22 +04:00
|
|
|
|
Assert.That(noResultsMessage.Displayed, Is.True, "Такого товара нет");
|
2025-02-15 19:42:01 +04:00
|
|
|
|
}
|
|
|
|
|
|
2025-02-15 23:11:44 +04:00
|
|
|
|
[Test, Order(7)]
|
2025-02-15 19:42:01 +04:00
|
|
|
|
public void TestSortByPriceAscending()
|
|
|
|
|
{
|
|
|
|
|
HomePage homePage = new HomePage(driver);
|
|
|
|
|
homePage.Open();
|
2025-02-15 20:08:33 +04:00
|
|
|
|
homePage.SearchForProduct("часы");
|
2025-02-15 19:42:01 +04:00
|
|
|
|
|
|
|
|
|
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
|
|
|
|
|
homePage.SortByPriceAscending();
|
|
|
|
|
|
|
|
|
|
var firstProductPrice = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//a[contains(@href, '/s.origPrice.asc')]")));
|
|
|
|
|
|
2025-02-15 20:08:33 +04:00
|
|
|
|
Assert.That(firstProductPrice.Text.Contains("По возрастающей цене"), Is.True);
|
2025-02-15 19:42:01 +04:00
|
|
|
|
}
|
|
|
|
|
|
2025-02-15 23:11:44 +04:00
|
|
|
|
[Test, Order(8)]
|
2025-02-15 19:42:01 +04:00
|
|
|
|
public void TestFilterByPrice()
|
|
|
|
|
{
|
|
|
|
|
HomePage homePage = new HomePage(driver);
|
|
|
|
|
homePage.Open();
|
2025-02-15 20:08:33 +04:00
|
|
|
|
homePage.SearchForProduct("часы");
|
2025-02-15 19:42:01 +04:00
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-15 23:11:44 +04:00
|
|
|
|
[Test, Order(9)]
|
2025-02-15 19:42:01 +04:00
|
|
|
|
public void TestAddToFavorites()
|
|
|
|
|
{
|
|
|
|
|
HomePage homePage = new HomePage(driver);
|
|
|
|
|
homePage.Open();
|
|
|
|
|
|
2025-02-15 23:11:44 +04:00
|
|
|
|
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')]")));
|
2025-02-15 19:42:01 +04:00
|
|
|
|
|
2025-02-15 23:11:44 +04:00
|
|
|
|
Assert.That(favoriteItem.Displayed, Is.True);
|
|
|
|
|
}
|
2025-02-15 19:42:01 +04:00
|
|
|
|
|
2025-02-15 23:23:22 +04:00
|
|
|
|
[Test, Order(10)]
|
2025-02-15 23:11:44 +04:00
|
|
|
|
public void TestDeleteToFavorites()
|
|
|
|
|
{
|
|
|
|
|
HomePage homePage = new HomePage(driver);
|
|
|
|
|
homePage.Open();
|
2025-02-15 19:42:01 +04:00
|
|
|
|
|
2025-02-15 23:11:44 +04:00
|
|
|
|
homePage.DeleteFavorites();
|
|
|
|
|
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
|
|
|
|
|
var favoriteItem = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//div[contains(@class, 'name___asFfu')]")));
|
2025-02-15 19:42:01 +04:00
|
|
|
|
|
2025-02-15 23:11:44 +04:00
|
|
|
|
string favoriteItemMyText = favoriteItem.Text;
|
|
|
|
|
Assert.That(favoriteItemMyText, !Is.EqualTo("25 игл из нержавеющей стали с большим ушком для вышивания"), "В избранных присутствует данный товар");
|
2025-02-15 19:42:01 +04:00
|
|
|
|
}
|
|
|
|
|
}
|
2025-02-15 20:08:33 +04:00
|
|
|
|
}
|