在iOS 7中,calabash在文本视图上尝试了touch()查询,但它没有触发委托shouldChangeCharactersInRange。所以我无法使用keyboard_enter_text()
键入文本我可以使用set_text ()
方法将文本设置为文本视图,
像这样
query("textView index:#{index}", setText:"#{text}")
但它没有触发委托方法。 有没有人有这方面的解决方案请分享。
答案 0 :(得分:0)
我用它来解决这个问题。我不得不打电话给#34;触摸"事件两次才能奏效。这是一个突然出现的解决方案。但首先使用一次检查
def set_text_to_textview_num(text,index)
index = index.to_i
if (index>=0)
touch(isValidElement("view:'UITextView' index:#{index}"))
touch(isValidElement("view:'UITextView' index:#{index}"))
sleep(0.4)
wait_for_keyboard
sleep(0.2)
keyboard_enter_text("#{text}")
done
sleep(0.3)
end
end
答案 1 :(得分:0)
我在您的评论中发布了您尝试链接的主题。
这是您在评论中选择的正确网址(缩写):http://goo.gl/3smo72
简答:使用keyboard_enter_text
set_text
自0.9.145以来已被弃用(葫芦现在为0.9.167)。
我在帖子中给出的解决方案是对苹果公司默默放弃对播放/录制的支持的破解,这打破了葫芦在iOS 7中执行触摸事件的能力。
您发布的代码可以替换为
wait_for_elements_exist(["textView index:#{index.to_i}"])
touch("textView index:#{index}")
wait_for_keyboard
keyboard_enter_text(text)
tap_keyboard_action_key
# sleep or wait for something else like the keyboard to disappear