使用 XCUI 在 iOS 模拟器上使用 NightwatchJS 进行自动化测试
Automation test with NightwatchJS on iOS simulator using XCUI
我尝试使用 NightWatchJS 对“单击和拖动”行为进行自动化 UI 测试,并在 Android 虚拟设备上成功执行了它。但是,当我尝试使用命令 .mouseButtonDown()
在 IOS 模拟器(iPhone 12 Pro max,14.5)上启动测试时
它显示“未处理的端点”错误
Appium日志如下:
[WD Proxy] Matched '/wd/hub/session/d033457a-e51c-4195-9d57-36976f50508a/buttondown' to command name 'buttonDown'
[WD Proxy] Proxying [POST /wd/hub/session/d033457a-e51c-4195-9d57-36976f50508a/buttondown] to [POST http://127.0.0.1:8100/session/680ECC16-09F1-472D-8D31-1C032771CC88/buttondown] with body: {"button":0}
[WD Proxy] Got response with status 404:
{"value":
{"error":"unknown command",
"message":"Unhandled endpoint: /session/680ECC16-09F1-472D-8D31 1C032771CC88/buttondown
-- http://127.0.0.1:8100/ with parameters {\n wildcards = (\n
\"session/680ECC16-09F1-472D-8D31-1C032771CC88/buttondown\"\n );\n}",
"traceback":""},
"sessionId":"680ECC16-09F1-472D-8D31-1C032771CC88"}
[debug] [W3C] Matched W3C error code 'unknown command' to UnknownCommandError
[HTTP] <-- POST /wd/hub/session/d033457a-e51c-4195-9d57-36976f50508a/buttondown 500 3 ms - 309
这是测试的配置:
ios : {
desiredCapabilities :{
automationName: "XCUITest",
browserName : "safari",
platformName : "iOS",
platformVersion : "14.5",
deviceName : "iPhone 12 Pro Max",
real_mobile : false,
connectHardwareKeyboard: false
}
我想知道在 iOS 模拟器上是否有任何方法可以解决这个问题?
出现这个问题的原因是Apple的XCTest测试驱动的框架与用于Android虚拟设备的测试驱动不同,它本身不支持W3C标准的TouchAction接口实现。所以我们在 NighwatchJS 官方文档中找到的一些命令可能无法正常工作。
出于这个原因,我们可以使用 XCtest 驱动程序附带的手势集(所有手势的列表 here )。
要将手势应用于 Nightwatch 测试,请使用
browser.execute('mobile: gesture', {arguments})
我尝试使用 NightWatchJS 对“单击和拖动”行为进行自动化 UI 测试,并在 Android 虚拟设备上成功执行了它。但是,当我尝试使用命令 .mouseButtonDown()
在 IOS 模拟器(iPhone 12 Pro max,14.5)上启动测试时
它显示“未处理的端点”错误
Appium日志如下:
[WD Proxy] Matched '/wd/hub/session/d033457a-e51c-4195-9d57-36976f50508a/buttondown' to command name 'buttonDown'
[WD Proxy] Proxying [POST /wd/hub/session/d033457a-e51c-4195-9d57-36976f50508a/buttondown] to [POST http://127.0.0.1:8100/session/680ECC16-09F1-472D-8D31-1C032771CC88/buttondown] with body: {"button":0}
[WD Proxy] Got response with status 404:
{"value":
{"error":"unknown command",
"message":"Unhandled endpoint: /session/680ECC16-09F1-472D-8D31 1C032771CC88/buttondown
-- http://127.0.0.1:8100/ with parameters {\n wildcards = (\n
\"session/680ECC16-09F1-472D-8D31-1C032771CC88/buttondown\"\n );\n}",
"traceback":""},
"sessionId":"680ECC16-09F1-472D-8D31-1C032771CC88"}
[debug] [W3C] Matched W3C error code 'unknown command' to UnknownCommandError
[HTTP] <-- POST /wd/hub/session/d033457a-e51c-4195-9d57-36976f50508a/buttondown 500 3 ms - 309
这是测试的配置:
ios : {
desiredCapabilities :{
automationName: "XCUITest",
browserName : "safari",
platformName : "iOS",
platformVersion : "14.5",
deviceName : "iPhone 12 Pro Max",
real_mobile : false,
connectHardwareKeyboard: false
}
我想知道在 iOS 模拟器上是否有任何方法可以解决这个问题?
出现这个问题的原因是Apple的XCTest测试驱动的框架与用于Android虚拟设备的测试驱动不同,它本身不支持W3C标准的TouchAction接口实现。所以我们在 NighwatchJS 官方文档中找到的一些命令可能无法正常工作。
出于这个原因,我们可以使用 XCtest 驱动程序附带的手势集(所有手势的列表 here )。
要将手势应用于 Nightwatch 测试,请使用
browser.execute('mobile: gesture', {arguments})