Я пытаюсь определить, видны ли какие-либо элементы внутри корзины после открытия страницы.
Если элемент присутствует, я немедленно отменяю его, чтобы очистить корзину для теста, чтобы "очистить"data ".
Код:
Это код DOM:
<div class="product-box">
<div>
<div class="rc-swipeout">
<div class="rc-swipeout-cover"></div>
<div class="rc-swipeout-actions rc-swipeout-actions-right">
<div class="rc-swipeout-btn swipeout-minus" role="button">
<div class="rc-swipeout-btn-text"><span class="material-icons minus-icon " style="color: rgba(0, 0, 0, 0.87); position: relative; font-size: 24px; display: inline-block; user-select: none; transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;">remove</span></div>
</div>
<div class="rc-swipeout-btn swipeout-plus" role="button">
<div class="rc-swipeout-btn-text"><span class="material-icons plus-icon " style="color: rgba(0, 0, 0, 0.87); position: relative; font-size: 24px; display: inline-block; user-select: none; transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;">add</span></div>
</div>
<div class="rc-swipeout-btn swipeout-remove" role="button">
<div class="rc-swipeout-btn-text"><span class="material-icons delete-icon " style="color: rgba(0, 0, 0, 0.87); position: relative; font-size: 24px; display: inline-block; user-select: none; transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;">delete</span></div>
</div>
</div>
<div class="rc-swipeout-content" style="touch-action: pan-y;">
<div class="cart-item-container" data-product-key="c754870c-fd8a-96a3-04f3-8300f11b3b22">
<div class="cart-item-container-content">
<div class="cart-item-name-container">
<div class="cart-item-hideoverflow">
<!-- react-text: 1969 -->Latte
<!-- /react-text --><span class="cart-item-size">(Normal)</span></div>
</div>
<div class="cart-item-count-container">
<div>1</div>
</div>
<div class="cart-item-price">
<div>
<div>3.50</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div>
<div class="rc-swipeout">
<div class="rc-swipeout-cover"></div>
<div class="rc-swipeout-actions rc-swipeout-actions-right">
<div class="rc-swipeout-btn swipeout-minus" role="button">
<div class="rc-swipeout-btn-text"><span class="material-icons minus-icon " style="color: rgba(0, 0, 0, 0.87); position: relative; font-size: 24px; display: inline-block; user-select: none; transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;">remove</span></div>
</div>
<div class="rc-swipeout-btn swipeout-plus" role="button">
<div class="rc-swipeout-btn-text"><span class="material-icons plus-icon " style="color: rgba(0, 0, 0, 0.87); position: relative; font-size: 24px; display: inline-block; user-select: none; transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;">add</span></div>
</div>
<div class="rc-swipeout-btn swipeout-remove" role="button">
<div class="rc-swipeout-btn-text"><span class="material-icons delete-icon " style="color: rgba(0, 0, 0, 0.87); position: relative; font-size: 24px; display: inline-block; user-select: none; transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;">delete</span></div>
</div>
</div>
<div class="rc-swipeout-content" style="touch-action: pan-y;">
<div class="cart-item-container product-active" data-product-key="187cf8f5-0b0b-810f-919d-479995b356a0">
<div class="cart-item-container-content">
<div class="cart-item-name-container">
<div class="cart-item-hideoverflow">
<!-- react-text: 1994 -->Hot Dog
<!-- /react-text --><span class="cart-item-size">(Normal)</span></div>
</div>
<div class="cart-item-count-container">
<div>1</div>
</div>
<div class="cart-item-price">
<div>
<div>3.50</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
1) Элементы:
private static readonly By BasketRowsLocator = By.XPath("//div[@class = 'cart-item-container-content']");
public IList<IWebElement> BasketRowsElements => driver.FindElements(BasketRowsLocator);
2) Метод
public bool IsBasketNotEmpty()
{
if (BasketRowsElements.Count > 0)
{
return true;
}
else
{
return false;
}
}
3) Последний метод в настройке NUnit
private void ValidateEmptyBasket()
{
try
{
var basketResult = mainPosPage.BasketComponent.IsBasketNotEmpty();
if (basketResult == true)
{
mainPosPage.LeftActionBarComponent.VoidElement.Click();
mainPosPage.WorkSpaceComponent.VoidDialogBoxComponent.YesButtonElement.Click();
}
}
catch (Exception)
{
throw;
}
}
Когда что-то находится внутри корзины, удаление выполняется очень быстро, но когда корзина пуста, она ждет пару секунд и после этогоон движется для выполнения теста.
Я пытался также установить метод внутри TeadDown, но ожидание такое же ... есть идеи?