Ошибка при запуске appium+python "object has no attribute 'execute'"

Здравствуйте.
При запуске теста appium+python получаю ошибку AttributeError: “scroll_page” object has no attribute ‘execute’.

вот функция которую я запускаю. консоль указывает ошибку в третьей строке

def scroll_page(self):
      action = TouchAction(self).press(x=125, y=119).move_to(x=125, y=572).release()
      action.perform()

Подскажите решение плиз

1 лайк

Могу предположить, что Вы передаете в конструктор класса TouchAction не WebDriver.

Ошибка вроде как в строке action.perform().
Я пробовал передавать значение в скобках и нет. Ошибки разные:

И вроде как, в обоих случаях не правильное значение в скобках

Посмотрите на код TouchAction python-client/touch_action.py at master · appium/python-client · GitHub

def __init__(self, driver=None):
        self._driver = driver
        self._actions = []

Конструктор класса TouchAction прнимает WebDriver в качестве параметра и сохраняет его в переменной self._driver, но Вы передаете параметр self, который ссылается на экземпляр вашего класса 'scroll_browser_page'. Когда в последствии вы выполняете perform, то вызывается следующий код:

def perform(self):
        """Perform the action by sending the commands to the server to be operated upon
        """
        params = {'actions': self._actions}
        self._driver.execute(Command.TOUCH_ACTION, params)

        # get rid of actions so the object can be reused
        self._actions = []

        return self

Этот код self._driver.execute пытается у вашего класса 'scroll_browser_page' найти метод execute и не находит, на что и ругается.

Используйте TouchAction(cls.driver)

1 лайк