KeyError: 'touchAction' в Appium с Python - PullRequest
1 голос
/ 17 июня 2020

Я изучаю Appium с помощью Python, но не могу выполнить TouchAction, так как столкнулся с ошибкой

KeyError: 'touchAction'.

Вот детали:

  • Версия Appium: 1.17.1
  • IDE: Pycharm

Код:

from appium.webdriver.common.touch_action import TouchAction
from selenium import webdriver

# Define desired capabilities
desired_caps = {
    "deviceName": "ac******",
    "platformName": "Android",
    "appPackage": "com.android.dialer",
    "noReset": "true",
    "appActivity": "com.oneplus.contacts.activities.OPDialtactsActivity"
}

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
driver.implicitly_wait(20)

# Locators and actions

user_action = TouchAction(driver)
user_action.tap(x=909, y=220).perform()

Журналы в PyCharm:

C:\Users\PycharmProjects\AppiumSandbox\venv\Scripts\python.exe C:/Users/PycharmProjects/AppiumSandbox/tests/contactone.py
Traceback (most recent call last):
File “C:/Users/PycharmProjects/AppiumSandbox/tests/contactone.py”, line 21, in
user_action.tap(x=909, y=220).perform()
File “C:\Users\PycharmProjects\AppiumSandbox\venv\lib\site-packages\appium\webdriver\common\touch_action.py”, line 149, in perform
self._driver.execute(Command.TOUCH_ACTION, params)
File “C:\Users\PycharmProjects\AppiumSandbox\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 319, in execute
response = self.command_executor.execute(driver_command, params)
File “C:\Users\PycharmProjects\AppiumSandbox\venv\lib\site-packages\selenium\webdriver\remote\remote_connection.py”, line 367, in execute
command_info = self._commands[command]
KeyError: ‘touchAction’

Журналы в Appium:

[HTTP] --> POST /wd/hub/session/f509a834-5b7e-4354-89d5-00dd4a59666d/timeouts

[HTTP] {“implicit”:20000}

[W3C (f509a834)] Calling AppiumDriver.timeouts() with args: [null,null,null,null,20000,“f509a834-5b7e-4354-89d5-00dd4a59666d”]

[BaseDriver] W3C timeout argument: {“implicit”:20000}}

[BaseDriver] Set implicit wait to 20000ms

[W3C (f509a834)] Responding to client with driver.timeouts() result: null

1 Ответ

1 голос
/ 17 июня 2020

Проблема решена путем добавления from appium import webdriver и удаления from selenium import webdriver в упомянутом сценарии автоматизации.

...