Добавление функций в AcceptanceHelper


(Ray Romanov) #1

Хочу добавить свою функцию в AcceptanceHelper, но что-то делаю не так:

public function dragAndDropByXY($element, $moveX, $moveY) {
	$this->getModule('WebDriver')->dragAndDropBy($element, $moveX, $moveY);
}

Дает ошибку.
1. Функция dragAndDropBy есть в WebDriver (\facebook\webdriver\lib\interactions), подскажите в чем загвоздка?
2. А точнее, как до нее добраться, чтоб использовать?!


(Александр Таранков) #2

Так и написано Ошибка! и больше ничего?


(Ray Romanov) #3

Я думаю это мало что даст:

  • I drag and drop by xy "#objects",0,-200
    PHP Fatal error: Call to undefined method Codeception\Module\WebDriver::dragAndDropBy() in /mnt/beta/tests/_support/AcceptanceHelper.php on line 15

FATAL ERROR. TESTS NOT FINISHED.
Call to undefined method Codeception\Module\WebDriver::dragAndDropBy()
in /mnt/beta/tests/_support/AcceptanceHelper.php:15


(Александр Таранков) #4

Я точно не помню как там в PHP, но cудя по ошибке, есть подозрение, что ты пытаешься вызвать метод dragAndDropBy как статический метод. То есть ->getModule('WebDriver') возвращает класс, а не экземпляр. Хотя могу и ошибаться


(Ray Romanov) #5

Вот поэтому у меня и 2 вопроса. Важнее 2й!


(Ray Romanov) #6

И что? Никто ничего не знает?


(Z41) #7

dragAndDropBy - это метод класса WebDriverActions. Вот и используйте его.

Примерно так:
$actions = new \WebDriverActions($yourWebdriverInstance);
$actions->dragAndDropBy(...)


(Ray Romanov) #8

Ага, спасибо, разобрался smile