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

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

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

Дает ошибку.

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

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

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

  • 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

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

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

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

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

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

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