118 lines
4.3 KiB
C#
Raw Normal View History

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)]
public void TestAuth()
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 20:08:33 +04:00
homePage.Auth("ПОЧТА", "ПАРОЛЬ");
2025-02-15 19:42:01 +04:00
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(100));
2025-02-15 20:08:33 +04:00
var profileButton = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//button[contains(@class, 'button___BfISQ')]//div[contains(@class, 'text___lAaAj') and contains(text(), 'Профиль')]")));
2025-02-15 19:42:01 +04:00
Assert.That(profileButton.Displayed, Is.True);
}
[Test, Order(2)]
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);
}
[Test, Order(3)]
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
Assert.That(noResultsMessage.Displayed, Is.True);
}
[Test, Order(4)]
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
}
[Test, Order(5)]
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);
}
[Test, Order(6)]
public void TestAddToFavorites()
{
HomePage homePage = new HomePage(driver);
homePage.Open();
2025-02-15 20:08:33 +04:00
homePage.Auth("ПОЧТА", "ПАРОЛЬ");
2025-02-15 19:42:01 +04:00
Thread.Sleep(5000);
2025-02-15 20:08:33 +04:00
homePage.SearchForProduct("25 игл из нержавеющей стали с большим ушком для вышивания");
2025-02-15 19:42:01 +04:00
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
var heartButton = wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//div[@class='actionButton___tq_Iy active___Rc9Go']//div[contains(@class, 'favoriteButton___z3oh3')]")));
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", heartButton);
heartButton.Click();
var favoriteItem = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//div[contains(@class, 'product___F_mly withFavorite___BnFAs product___crBKK')]")));
Assert.That(favoriteItem.Displayed, Is.True);
}
}
2025-02-15 20:08:33 +04:00
}