【发布时间】:2015-08-04 10:43:38
【问题描述】:
我正在使用 Selenium 进行 iOS 移动应用程序测试。我正在使用各自的
Appium version 1.3.7Node JS version 2.7.5ios webkit debug proxyiPhone 5cXcode version 6.1
我正在使用一个 shell 脚本来帮助我检查 ios_webkit_debug_proxy 是否可用。如果不存在,则在 2 秒内启动 ios_webkit_debug_proxy。
我的测试运行良好。但是在appium中仍然面临一些问题,Appium肯定会停止给uncaught exception: Cannot read property 'executeAtom' of null
我尝试过各种方式来解决。
- 重新启动 Appium 并再次运行。
- 将 appium 版本更新到稳定的最新版本 1.4.0。但是 错误仍然存在。
- 更新 Node JS。
- Xcode 总是在运行执行时打开。
- 在每个 WebDriverWait 发生之前取消隐式等待。 链接:http://chon.techliminal.com/ajax_wait/#/intro
- 在每个相关类中使用 java 未捕获的异常处理程序。关联: https://bharatonjava.wordpress.com/2012/09/04/uncaughtexceptionhandler-in-java/
但仍然存在错误。 您能建议我如何解决这个问题吗?
为了您更好地理解,我附上下面的日志文件。
info: [debug] [REMOTE] 发送 javascript 命令
info: [debug] [REMOTE] 远程调试器数据发送 [{"method":"Runtime.evaluate","params":{"objectGroup":"console","includeCommandLineAPI":true,"doNotPauseOnExceptionsAndMuteConsole":true,"表达式":"(函数(){返回函数(){函数h(a){返回...]
调试器 web socket 收到数据:{"result":{"result":{"type":"string","value":"{\"status\":0,\"value\":[]}"} ,"wasThrown":false},"id":57}
信息:[调试] 到目前为止等待了 7659 毫秒
信息:--> POST /wd/hub/session/d102c79f-f695-4fbb-a020-45caf2af7b05/context {"name":"NATIVE_APP"}
信息:[调试] 尝试将上下文设置为 'NATIVE_APP'
信息:[调试]成功响应客户端:{"status":0,"value":"","sessionId":"d102c79f-f695-4fbb-a020-45caf2af7b05"}
信息:POST /wd/hub/session/d102c79f-f695-4fbb-a020-45caf2af7b05/context {"name":"NATIVE_APP"}
信息:[调试] 尝试将上下文设置为 'NATIVE_APP'
信息:[调试]成功响应客户端:{"status":0,"value":"","sessionId":"d102c79f-f695-4fbb-a020-45caf2af7b05"}
信息:POST /wd/hub/session/d102c79f-f695-4fbb-a020-45caf2af7b05/context 200 0.862 ms - 74 {"status":0,"value":"","sessionId":"d102c79f-f695-4fbb -a020-45caf2af7b05"}
错误:uncaughtException:无法读取空日期的属性“executeAtom”=2015 年 5 月 22 日星期五 11:40:38 GMT+0600 (BDT),pid=9153,uid=501,gid=20,cwd=/Applications/Appium.app /Contents/Resources/node_modules/appium, execPath=/Applications/Appium.app/Contents/Resources/node/bin/node, version=v0.12.1, argv=[/Applications/Appium.app/Contents/Resources/node/ bin/node, /Applications/Appium.app/Contents/Resources/node_modules/appium/lib/server/main.js, --command-timeout, 7200, --platform-version, 7.1, --platform-name, iOS , - putter, - dudid,0b72ccc692943f83fa2f83078b3030a760fa5f,--device-name,iPhone 5],RSS = 218198016,Healpused = 187542272,Loadavg = [1.51611328125,1.689453125,1.67431640625],正常运行时间=71672,跟踪=[列=14,文件=/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/ios/ios-controller.js,
功能=iOSController.executeAtom,行=647,方法=executeAtom,本机=false,列=10,文件=/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/ios/ios-controller.js ,
函数=,行=311,方法=null,本机=假,列=13,文件=/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/common.js,
函数=,行=90,方法=null,本机=假,列=5,文件=/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/common.js,
函数=,行=66,方法=null,本机=假,列=15,文件=timers.js,函数=Timer.listOnTimeout,行=110,方法=listOnTimeout,本机=假],
stack = [TypeError:无法读取null的属性'executeAtom',
在 iOSController.executeAtom (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/ios/ios-controller.js:647:14),
在空。 (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/ios/ios-controller.js:311:10),
在空。 (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/common.js:90:13),
在空。 (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/common.js:66:5),
在 Timer.listOnTimeout (timers.js:110:15)]
【问题讨论】:
-
您介意将 appium 更新到最新版本 1.4.1 并再次检查问题。他们在最近两个版本中进行了许多错误修复。如果您尝试一下,请告诉我们结果。
-
我已经更新到 1.4.0 稳定版。但它像往常一样失败了。没有进展@Vvvaib
标签: javascript ios automated-tests appium ios-ui-automation