0

iOS 7 以降、ひょうたんを使用した UIAlertView の検証に問題がありました。

今のところ、次を使用してアラートメッセージを検出できます

wait_for_elements_exist(["view:'_UIModalItemRepresentationView'"], :timeout => 20)
query("view:'_UIModalItemRepresentationView' label marked:'#{text}'",).empty?

https://gist.github.com/seanoshea/7613671からアイデアを得ました

しかし、以前 (iOS 6) では、このようにメッセージとタイトルを明確に検出できました。

title = query("view:'UIAlertView'",:title).first
msg = query("view:'UIAlertView'",:message).first

iOS7 で同じことができる方法はありますか? 「率直な」連中も同じことをしていると思いますhttps://github.com/moredip/Frank/pull/262 .

注: jmoody Pleseは、ひょうたんの自動化におけるこの iOS 7 アラートで私たちを助けてくれます。

4

1 に答える 1

2

今のところ、私はこのソリューションを使用しています。誰かが同じ問題に直面している場合は、適切な解決策が得られるまでこれを使用できます。

Then /^I should see empty email alert$/ do
  is_alert_exist_with_text("Email cannot be empty.")
  sleep(0.5)
  touch_alert_button("OK")
end
######## 関数を定義する
def touch_alert_button(button)
  btn = query("view:'_UIModalItemTableViewCell' label marked:'#{button}'").first.empty?
  if (btn)
    screenshot_and_raise "button not found '#{button}'"
  else
    touch("view:'_UIModalItemTableViewCell' label marked:'#{button}'").first
    sleep(0.2)
  end
end

def is_alert_exist_with_text(text)
  unless query("view:'_UIModalItemRepresentationView' label marked:'#{text}'",).empty?
    return true
  else
    screenshot_and_raise "could not find the text '#{text}' in alert view"
  end
end

さらに...

def is_alert_exist_with_title_and_message(title, message)
  elements = query("view:'_UIModalItemRepresentationView' label", 'text')
  buttons = query("view:'_UIModalItemTableViewCell' label", 'text')
  textLabels = elements - buttons

  if (textLabels.count == 2)
    screenshot_and_raise "Alert Title '#{title}' not found" unless (textLabels[0].eql? title)
    screenshot_and_raise "Alert Message '#{message}' not found" unless (textLabels[1].eql? message)
  else
    screenshot_and_raise "Argument error...isAlertExistWithTitleAndMessage function"
  end
end
于 2014-02-09T18:26:56.530 に答える