我正在将 Calabash 集成到一个大型项目中。我让 Calabash 在测试应用程序中工作,所以我知道我的安装和环境设置正确。我正在使用可访问性标签和 .feature 文件来点击按钮并在字段中键入文本。效果很好。
但是,我的“真实”项目更大更复杂。即使配置与我的测试应用程序相同(请参阅下面的统计信息),当我在真实应用程序上运行一个简单的 .feature 文件时,我得到的结果不稳定:大约 80% 的时间,它甚至在通过“给定”.feature 文件的行,并最终超时并显示此消息:
Retrying.. HTTPClient::ReceiveTimeoutError: (execution expired)
我注意到,在这些情况下,当我尝试使用鼠标与之交互时,应用程序完全没有响应。它似乎已经卡住了。还有一个应该出现但从未出现的 UIAlertView。请注意,当我从 XCode(相同的“-cal”目标)启动模拟器时,它从不卡住。我可以与之交互,出现 UIAlert,一切正常。
另外 20% 的时间,它会使其更深入我的 .feature 文件 - 它会有效地通过“给定”行,可能还有其他行,只要它们不涉及与屏幕交互。任何点击或键入命令都会导致它挂起并最终超时,并显示与上述相同的“执行已过期”消息。
经过大量调查,我消除了此应用程序和我的测试应用程序的环境/配置之间的任何可能差异,并确定我的应用程序中一定有 Calabash 不喜欢的地方!不幸的是,我对 Calabash 太陌生了,不知道从哪里开始寻找。任何帮助将不胜感激。
根据 Calabash 团队的要求进行诊断:
> xcode-select --print-path
/Applications/Xcode.app/Contents/Developer
> xcodebuild -version
Xcode 6.1
Build version 6A1052d
> calabash-ios version
0.11.3
> calabash.framework/Resources/version
0.11.3
irb(main):006:0> server_version
{
"app_version" => "0.10",
"outcome" => "SUCCESS",
"app_id" => "<redacted>",
"simulator_device" => "iPhone",
"version" => "0.11.3",
"app_name" => "<redacted>",
"iphone_app_emulated_on_ipad" => false,
"4inch" => true,
"git" => {
"remote_origin" => "git@github.com:calabash/calabash-ios-server.git",
"branch" => "master",
"revision" => "40c6245"
},
"screen_dimensions" => {
"scale" => 2,
"width" => 640,
"sample" => 1,
"height" => 1136
},
"iOS_version" => "8.1",
"system" => "x86_64",
"simulator" => ""
}
最佳答案
您是否尝试过将 calabash 更新到 .13?您是否添加了 CFNetwork 框架?
您是否添加了 -force_load "$(SRCROOT)/calabash.framework/calabash"-lstdc++?
抱歉缺少信息,这就是我能想到的吗?如果你已经解决了这个问题。你能关闭它吗?
关于ios - 为什么 Calabash 无法在模拟器中与我的 iOS 应用交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26613669/
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳