【问题标题】:KeyError: ‘touchAction’ in Appium with PythonKeyError:使用 Python 的 Appium 中的“touchAction”
【发布时间】:2020-10-06 20:15:07
【问题描述】:

我正在使用 Python 自学 Appium,但由于遇到错误而无法执行 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

【问题讨论】:

    标签: python python-3.x appium appium-android


    【解决方案1】:

    通过在提到的自动化脚本下添加 from appium import webdriver 和删除 from selenium import webdriver 解决了问题。

    【讨论】:

      猜你喜欢
      • 2019-04-09
      • 2019-09-25
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 2020-08-17
      • 2017-11-01
      • 2021-12-17
      • 2017-05-10
      相关资源
      最近更新 更多