uni-app 微信小程序中【自动化测试】input组件element.input('aaa')后会报错
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()
解决报错的可能方案
-
确保元素定位正确:
- 使用Appium Inspector或者其它工具检查
input
元素的属性,确保使用的定位策略(如accessibility_id
,id
,xpath
等)是正确的。
- 使用Appium Inspector或者其它工具检查
-
处理软键盘问题:
- 在某些情况下,输入文本后软键盘可能会遮挡住输入框,导致输入不成功。可以尝试在输入文本后隐藏软键盘:
driver.execute_script("mobile: performTouchAction", [{ "action": "press", "options": { "x": 500, "y": 2000 # 假设这是键盘区域外的一个点 } }, { "action": "wait", "options": { "ms": 500 } }, { "action": "lift" }])
- 在某些情况下,输入文本后软键盘可能会遮挡住输入框,导致输入不成功。可以尝试在输入文本后隐藏软键盘:
-
使用正确的自动化名称:
- 确保
automationName
与你的设备和操作系统版本兼容。对于较新的Android设备,通常使用UiAutomator2
。
- 确保
-
检查Appium服务器日志:
- 查看Appium服务器的日志输出,可能会提供更多关于错误的详细信息。
通过上述方法,你应该能够解决在uni-app微信小程序自动化测试中遇到的input
组件输入报错的问题。如果问题依然存在,可能需要更详细地检查uni-app的组件实现或者测试框架的更新日志。