118 lines
4.3 KiB
C#
Raw 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 TestAuth()
{
HomePage homePage = new HomePage(driver);
homePage.Open();
homePage.Auth("ПОЧТА", "ПАРОЛЬ");
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(100));
var profileButton = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//button[contains(@class, 'button___BfISQ')]//div[contains(@class, 'text___lAaAj') and contains(text(), 'Профиль')]")));
Assert.That(profileButton.Displayed, Is.True);
}
[Test, Order(2)]
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(3)]
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(4)]
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(5)]
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(6)]
public void TestAddToFavorites()
{
HomePage homePage = new HomePage(driver);
homePage.Open();
homePage.Auth("ПОЧТА", "ПАРОЛЬ");
Thread.Sleep(5000);
homePage.SearchForProduct("25 игл из нержавеющей стали с большим ушком для вышивания");
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);
}
}
}