TPO/Testing/TestProject/HomePage.cs

174 lines
6.3 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;
namespace TestProject
{
public class HomePage : BasePage
{
private By AuthLink = By.XPath("//a[@href='/ru/entrance']");
private By showMoreButton = By.XPath("//button[contains(@class, 'button___xFkMg') and contains(., 'Показать еще варианты')]");
private By emailAuthButton = By.XPath("//div[contains(@class, 'normal___w8_y9')]//a[contains(@href, '/ru/entrance/signin')]");
private By emailInput = By.XPath("//input[@name='email']");
private By passwordInput = By.XPath("//input[@name='password']");
private By submitButton = By.XPath("//button[@type='submit']//div[contains(@class, 'caption___L78vz') and contains(., 'Войти')]");
private By profileButton = By.XPath("//button[contains(@class, 'button___BfISQ')]//div[contains(@class, 'text___lAaAj') and contains(text(), 'Профиль')]");
private By reviewsLink = By.XPath("//a[contains(@class, 'item___tZDUe clickable___Yuycq largeText___H5mAO') and contains(text(), 'Мои обзоры')]");
private By editButton = By.XPath("//button[@testid='SocialUserEditButton']");
private By descriptionTextarea = By.XPath("//textarea[@name='description']");
private By saveButton = By.XPath("//button[@testid='SocialUserProfilePopupSubmitButton']");
private By ordersLink = By.XPath("//a[contains(@href, '/ru/orders')]");
private By balanceLink = By.XPath("//a[contains(@class, 'item___tZDUe clickable___Yuycq largeText___H5mAO') and contains(text(), 'Мой баланс')]");
private By searchInput = By.ClassName("input___OsSf0");
private By searchButton = By.ClassName("submitButton___iZDz3");
private By sortButton = By.XPath("//button[contains(@class, 'content___hcPVc') and contains(., 'Cортировка')]");
private By sortByPriceAscending = By.XPath("//a[contains(@href, '/s.origPrice.asc')]");
private By filterButton = By.XPath("//button[contains(@class, 'content___hcPVc') and contains(., 'Цена')]");
private By minPriceInput = By.XPath("//input[@name='min']");
private By maxPriceInput = By.XPath("//input[@name='max']");
private By applyFilterButton = By.XPath("//button[contains(@class, 'button___HN4kv') and contains(., 'Применить')]");
private By heartButton = By.XPath("//div[@class='actionButton___tq_Iy active___Rc9Go']//div[contains(@class, 'favoriteButton___z3oh3')]");
private By heartDeleteButton = By.XPath("//svg[@class='root___Z1kvz filled___PLueY']");
private By favoritesLink = By.XPath("//a[@href='/ru/favorites']");
private By productItem = By.XPath("//div[contains(@class, 'name___asFfu') and contains(., '25 игл из нержавеющей стали с большим ушком для вышивания')]");
private By addToCart = By.XPath("//span[contains(@class, 'label___CQCKv') and contains(., 'В корзину')]");
private By cartButton = By.XPath("//a[@href='/ru/cart']");
private By AddCountToCart = By.XPath("//button[@class='increase___T5SMf']");
private By deleteButton = By.XPath("//button[contains(@class, 'trash___gQVfp color-placeholder___eHEn5')]");
private By confirmDeleteButton = By.XPath("//button[contains(@class, 'button___Fogz2 rounded-rect___bviwL medium___fKhsq accent___SFpoh medium___fKhsq fullWidth___YCBfX')]");
public HomePage(IWebDriver driver) : base(driver) { }
public void Open()
{
OpenUrl("https://www.joom.ru/");
}
public void Auth(string email, string password)
{
Click(AuthLink);
Click(showMoreButton);
Click(emailAuthButton);
Type(emailInput, email);
Type(passwordInput, password);
Click(submitButton);
Thread.Sleep(5000);
}
public void AuthMy()
{
Auth("ЛОГИН", "ПАРОЛЬ");
}
public void EditAboutMe(string newDescription)
{
AuthMy();
Click(profileButton);
Click(reviewsLink);
Click(editButton);
FindElement(descriptionTextarea).Clear();
Type(descriptionTextarea, newDescription);
Click(saveButton);
}
public void ChechMyOrders()
{
AuthMy();
Click(ordersLink);
}
public void ChechMyFavorites()
{
AuthMy();
Click(profileButton);
Click(favoritesLink);
}
public void CheckMyBalance()
{
AuthMy();
Click(profileButton);
Click(balanceLink);
}
public void SearchForProduct(string productName)
{
Type(searchInput, productName);
Click(searchButton);
}
public void SortByPriceAscending()
{
Click(sortButton);
Click(sortByPriceAscending);
}
public void FilterByPrice(int minPrice, int maxPrice)
{
Click(filterButton);
Type(minPriceInput, minPrice.ToString());
Type(maxPriceInput, maxPrice.ToString());
Click(applyFilterButton);
}
public void AddFavorites(string productName)
{
AuthMy();
Type(searchInput, productName);
Click(searchButton);
Click(heartButton);
Click(profileButton);
Click(favoritesLink);
}
public void DeleteFavorites()
{
AuthMy();
Click(profileButton);
Click(favoritesLink);
Click(heartButton);
driver.Navigate().Refresh();
Thread.Sleep(5000);
}
public void AddToCart()
{
AuthMy();
OpenUrl("https://www.joom.ru/ru/products/645ba6bfc5f80701f93cead6?variant_id=645ba6bfc5f8072cf93cead8");
Thread.Sleep(3000);
Click(addToCart);
Click(cartButton);
}
public void UpdateCountProduct()
{
AuthMy();
Click(cartButton);
Click(AddCountToCart);
}
public void DeleteProductToCart()
{
AuthMy();
Click(cartButton);
Click(deleteButton);
Click(confirmDeleteButton);
}
}
}