What's this?
This page is intended to act as a place for useful Frank step definitions which aren't quite standard enough to add to the core frank steps. Please feel free to contribute your own useful codez.
Counting specific items displayed on the App
This works for Waseem:
Then /^I should see (.*) apples$/ do |count| apples = frankly_map( "label marked:'red apples'", 'tag' ) apples.count.should == count.to_iend
Editing a text field using the keyboard
(see for details)
This works for Pete's team:
When /^I use the keyboard to fill in the textfield marked "([^\\"]*)" with "([^\\"]*)"$/ do |text_field_mark, text_to_type| text_field_selector = "view marked:'#{ text_field_mark}'" check_element_exists( text_field_selector ) touch( text_field_selector ) frankly_map( text_field_selector, 'setText:', text_to_type ) frankly_map( text_field_selector, 'endEditing:', true ) end
This works for Martin:
When /^I use the keyboard to fill in the textfield marked "([^\\"]*)" with "([^\\"]*)"$/ do |text_field_mark, text_to_type| text_field_selector = "view marked:'#{ text_field_mark}'" check_element_exists( text_field_selector ) frankly_map( text_field_selector, 'becomeFirstResponder' ) frankly_map( text_field_selector, 'setText:', text_to_type ) frankly_map( text_field_selector, 'endEditing:', true ) end
Simulating sending text and hitting return on the keyboard
This can be a useful workaround when dealing with the iOS keyboard. Thanks to and James Moore for this one!
def send_command ( command ) %x{osascript<
Resetting the app to first launch state
Given /^I reset the (iphone|ipad) app$/ do |device| steps "When I quit the simulator" SDK = "4.3" APPLICATIONS_DIR = "/Users/#{ ENV['USER']}/Library/Application Support/iPhone Simulator/#{ SDK}/Applications" USERDEFAULTS_PLIST = "Library/Preferences/com.yourcompany.#{ APPNAME}.dist.plist" Dir.foreach(APPLICATIONS_DIR) do |item| next if item == '.' or item == '..' if File::exists?( "#{ APPLICATIONS_DIR}/#{ item}/#{ USERDEFAULTS_PLIST}") FileUtils.rm "#{ APPLICATIONS_DIR}/#{ item}/#{ USERDEFAULTS_PLIST}" end end steps "Given I launch the #{ device} app"end
Taking a screenshot of the app
Then /^I save a screenshot with prefix (\w+)$/ do |prefix| filename = prefix + Time.now.to_i.to_s %x[screencapture #{ filename}.png]end
Deleting a table view cell
(see for details)
When /^I delete the table view cell marked "([^"]*)"$/ do |mark| raise "no table view cell marked '#{ mark}' could be found to delete" unless element_exists("tableViewCell label marked:'#{ mark}'") frankly_map( "tableViewCell label marked:'#{ mark}' parent tableViewCell delete", "tag" ) end
Selecting from a UIPickerView
From
When /^I select (\d*)(?:st|nd|rd|th)? row in picker "([^\"]*)"$/ do | row_ordinal, theview| selector = "view:'UIPickerView' marked:'#{ theview}'" row_index = row_ordinal.to_i - 1 views_switched = frankly_map( selector, 'selectRow:inComponent:animated:', row_index, 0, false ) raise "could not find anything matching [#{ row_ordinal}] to switch" if views_switched.empty? end 转自:https://github.com/moredip/Frank/wiki/Step-Definition-compendium