0.11.4触摸在横向方向上似乎偏离目标

时间:2014-12-30 17:09:31

标签: ios-simulator calabash calabash-ios

最初,我们在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

有没有人见过这样的东西?而且,当我使用物理设备时,这不会发生。

1 个答案:

答案 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的预发布情况正在改善;我相信现在可以发布预发行版。我不知道最新的预发行版是什么。我会查询并更新我的答案。