uni-app 微信小程序中【自动化测试】input组件element.input('aaa')后会报错

发布于 1周前 作者 nodeper 来自 Uni-App

uni-app 微信小程序中【自动化测试】input组件element.input(‘aaa’)后会报错

[渲染层错误] Uncaught TypeError: Converting circular structure to JSON
--> starting at object with constructor 'l'
|     property 'parentNode' -> object with constructor 'd'
|     property 'childNodes' -> object with constructor 'Array'
--- index 0 closes the circle(env: Windows,mp,1.06.2412031; lib: 3.7.0)  

[渲染层错误] TypeError: SystemError (webviewScriptError)
Converting circular structure to JSON
--> starting at object with constructor 'l'
|     property 'parentNode' -> object with constructor 'd'
|     property 'childNodes' -> object with constructor 'Array'
--- index 0 closes the circle(env: Windows,mp,1.06.2412031; lib: 3.7.0)

3 回复

提供完整代码,看看写法,并说明 vue、HBuilderX 依赖版本。
具体用法参考文档 https://uniapp.dcloud.net.cn/worktile/auto/api.html#element-input


解决了,微信开发工具版本问题

在uni-app进行微信小程序的自动化测试时,如果你在使用类似Appium或者其它自动化测试框架时遇到对input组件使用element.input('aaa')后报错的情况,这通常是由于元素定位不正确、测试框架的兼容性问题或者是uni-app的特殊处理机制导致的。下面我将给出一个使用Appium进行自动化测试的示例代码,以及可能遇到的问题的解决方案。

示例代码(使用Appium)

首先,确保你已经安装了Appium服务器和Appium Python Client。然后,你可以使用以下代码来自动化测试一个uni-app中的input组件:

from appium import webdriver

desired_caps = {
    "platformName": "Android",
    "deviceName": "your_device_name",
    "appPackage": "com.yourapp.package",
    "appActivity": ".MainActivity",
    "noReset": True,
    "automationName": "UiAutomator2"  # 或者 "XCUITest" 对于iOS
}

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

# 定位input元素,这里假设input元素的accessibility id是'inputField'
input_element = driver.find_element_by_accessibility_id('inputField')

# 尝试输入文本
input_element.send_keys('aaa')

# 其他测试步骤...

# 关闭会话
driver.quit()

解决报错的可能方案

  1. 确保元素定位正确

    • 使用Appium Inspector或者其它工具检查input元素的属性,确保使用的定位策略(如accessibility_id, id, xpath等)是正确的。
  2. 处理软键盘问题

    • 在某些情况下,输入文本后软键盘可能会遮挡住输入框,导致输入不成功。可以尝试在输入文本后隐藏软键盘:
      driver.execute_script("mobile: performTouchAction", [{
          "action": "press",
          "options": {
              "x": 500,
              "y": 2000  # 假设这是键盘区域外的一个点
          }
      }, {
          "action": "wait",
          "options": {
              "ms": 500
          }
      }, {
          "action": "lift"
      }])
      
  3. 使用正确的自动化名称

    • 确保automationName与你的设备和操作系统版本兼容。对于较新的Android设备,通常使用UiAutomator2
  4. 检查Appium服务器日志

    • 查看Appium服务器的日志输出,可能会提供更多关于错误的详细信息。

通过上述方法,你应该能够解决在uni-app微信小程序自动化测试中遇到的input组件输入报错的问题。如果问题依然存在,可能需要更详细地检查uni-app的组件实现或者测试框架的更新日志。

回到顶部