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-16 10:29:27 +04:00
[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 ( "Ваша корзина пуста" ) , "Ваша корзина не пуста" ) ;
}
2025-02-15 19:42:01 +04:00
}
2025-02-15 20:08:33 +04:00
}