Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

[Resolved] Аналог moveToElement() в yandex htmlelements


(Sergey Matyukhin) #1

Добрый день!

Никак не удается сделать простейшее действие при использовании htmlelements: навести курсор мыши на элемент не кликая на него, затем клинуть на появившийся следом элемент.

Делаю на примере market.yandex.ru - верхнее меню.
Требуется навести курсор например на Электроника, затем появился дополнительная строка и выбрать Мобильные телефоны.

Без использования htmlelements использовал обычную конструкцию с экшнс:

	public void moveToPhones() {
	action.moveToElement(onLoginPage().computersLink).build().perform();
}

Но при попытке закастить объявленный элемент как WebElement при сборке у меня выдается ошибка:

@FindBy(xpath = "//li/a[text()='Электроника']']")
public Button electronicLink;

Вот так пытаюсь сделать наведение:

public void moveToComputers() {
	action.moveToElement((WebElement) onLoginPage().menu.computersLink).build().perform();
}

тут фукидид начинает ругаццо:

java.lang.ClassCastException: ru.yandex.qatools.htmlelements.element.Button cannot be cast to org.openqa.selenium.WebElement

(Антон) #2

Если он так ругается то в твоем элементе electronicLink вызови метод getWrappedElement вот он тебе вернет соответствующий WebElement


(Александр Шиповалов) #3

Да, вы ведь передаете в качестве параметра объект WebElement, а объявили его как Button.


(Sergey Matyukhin) #4

Спасибо большое! Добавление метода getWrappedElement спасло ситуацию :slight_smile: