最初,我们在8月份进行了自动化测试,并持续运行。失败后,他们变得过时,我们不得不暂停。我试图让他们再次工作,在将Calabash-ios,calabash服务器和Calabash组件更新到Xamarin Cloud组件之后,我遇到了一个问题。触摸呼叫不再正常工作。触摸似乎没有目标。
例如:我尝试触摸我们应用的登录按钮,而不是" r"按下键盘上的按钮。键盘也没有覆盖按钮。
我已经尝试了here给出的解决方法,认为可能是横向导致问题但没有运气。
这是使用运行iOS 8.1的iPad 2模拟器。我也试过7.1并遇到同样的问题。我们正在使用Xamarin,如果这有任何区别。
版本:
~$ xcode-select --print-path
/Applications/Xcode.app/Contents/Developer/
~$
~$ xcodebuild -version
Xcode 6.1.1
Build version 6A2008a
~$
~$ calabash-ios version
0.11.4
~$
~$ curl http://localhost:37265/version
{
"app_version": "Unknown",
"outcome": "SUCCESS",
"app_id": "com._______.dev",
"simulator_device": "iPad",
"version": "0.11.4",
"app_name": "_____ Dev",
"iphone_app_emulated_on_ipad": false,
"4inch": false,
"git": {
"remote_origin": "git@github.com:calabash/calabash-ios-server.git",
"branch": "master",
"revision": "bcc992b"
},
"screen_dimensions": {
"scale": 1,
"width": 768,
"sample": 1,
"height": 1024
},
"iOS_version": "8.1",
"system": "x86_64",
"simulator": ""
}
我也可以从calabash-ios控制台重现它。
这两个命令都会点击" R"数字键盘上的按钮:
irb(main):011:0> touch("button marked:'Sign In'")
[
[0] {
"selected" => false,
"enabled" => true,
"rect" => {
"center_x" => 339.6667,
"y" => 341,
"width" => 58,
"x" => 310.6667,
"center_y" => 428,
"height" => 174
},
"id" => nil,
"description" => "<UIButton: 0x78f80b00; frame = (509 310.667; 174 58); opaque = NO; layer = <CALayer: 0x78f80ab0>>",
"label" => "Sign In",
"alpha" => 1,
"class" => "UIButton",
"frame" => {
"y" => 310.6667,
"width" => 174,
"x" => 509,
"height" => 58
}
}
]
irb(main):012:0> tap_point(339, 428)
此命令正确点击登录按钮的位置:
irb(main):023:0> tap_point(639, 328)
true
有没有人见过这样的东西?而且,当我使用物理设备时,这不会发生。
答案 0 :(得分:0)
有没有人见过这样的东西?此外,当我使用物理设备时,这不会发生。
是的,我们已经报告了这样的问题,并且它们在很大程度上已经通过0.12.0预发布版解决了。
您可以尝试以下方法重现:
$ DEVICE_TARGET="iPad Retina (8.1 Simulator)" bundle exec calabash-ios console
> start_test_server_in_background({ :uia_strategy => :host })
:主机策略比:偏好策略慢。但是,由于Apple的UIAAutomation API存在一些漏洞,因此它是唯一适用于iOS 8 设备的策略。
0.12.0预发行版包含:host和:preferences策略的重大改进。当释放0.12.0时,您可以删除:uia_strategy =&gt; :主持并坚持推荐的默认值。
UITest的预发布情况正在改善;我相信现在可以发布预发行版。我不知道最新的预发行版是什么。我会查询并更新我的答案。