Wednesday, 30 April 2014

Calabash IOS / Android most used commands

Commands to check id's of all elements present in view
query("view,:id") for IOS 
query("*,:id") for android

Commands to list description of all elements 
query("view,:description") for IOS 
query("*,:description") for android

Sunday, 27 April 2014

Ruby subtract unix times and convert it into days and format DateTime

require 'date'
DateTime.strptime(,'%s').strftime("%d %m %y")
#find difference between 2 date times

calabash ruby: Installing ruby rvm on mac OSX why and how

Why Ruby or RVM ?
Calabash commands needs ruby to be installed for interpreting commands to actions.

Which version of ruby to install ? - 
Check here pre requisites section in this link
Currently its 2.0+

Why Rvm ?  -  RVM is used to manage to rubies on mac 

Alternative to RVM ?  -  use rbenv 

How to install rvm ?
run these command from terminal on mac

$ \curl -sSL | bash -s stable --ruby
(there is a backslash before curl. This prevents misbehaving if you have aliased it with configuration in your ~/.curlrc file)
Then install required version of ruby ..
$ rvm install 2.0.0
$ rvm use 2.0.0
You can set a version of Ruby to use as the default for new shells. Note that this overrides the ‘system’ ruby
$ rvm use 2.1.0 --default

Check here for more documentation -
      • When to clean and install - Check errors section below
      • How to verify RVM installation is successful

      Close existing terminal and reopen new terminal window
      a) type this command in terminal 'open ~/.bash_profile' check if you see code the this 


      [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"  # This loads RVM into a shell session.

      b) type this command 'rvm list'
      check ouput it must be like below

      ~ $: rvm list

      rvm rubies
         ruby-2.0.0-p353 [ x86_64 ]
      =* ruby-2.0.0-p451 [ x86_64 ]

      # => - current

      # =* - current && default
      #  * - default

      c) Ruby version currently used 

      ~ $: ruby -v

      ruby 2.0.0p451 

      Common Issues: While installing calabash gems 
        1) Error during RVM installation
        About to install Homebrew, press `Enter` for default installation in `/usr/local`,
        type new path if you wish custom Homebrew installation (the path needs to be writable for user)
        : Requirements installation failed with status: 1.

        2) ERROR:  While executing gem ... (Gem::FilePermissionError)
            You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
        lon04-04266:~ dakojuu$ sudo gem install calabash-cucumber
        Building native extensions.  This could take a while...
        ERROR:  Error installing calabash-cucumber:
        ERROR: Failed to build gem native extension.

            /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
        checking for main() in -lc... yes
        creating Makefile
          Solution resintall RVM

          Thursday, 17 April 2014

          Android -adb fast and easy way to get screenshots

          • Connect android device to PC / Mac ( make sure android sdk path is set)
          • run below commands, screen shot of current screen is taken and save on to current folder from where this command is run
          adb shell screencap -p /sdcard/screen.png
          sleep 0.1
          adb pull /sdcard/screen.png

          Sunday, 13 April 2014

          Command to launch ios simulator from mac command line OSX

          Use the below command

          alias sl='open /Applications/\'

            Adding alias to bash profile
            Open Bash profile ( ~/.bash_profile)
            and add the below line  
            alias sl='open /Applications/\'

            2 Solutions: How to find APP_BUNDLE_PATH calabash ios automation

            Solution 1:
            Open Xcode preferences and select location where .app file (generated when IOS code is compiled will be located) should be placed.

            APP_BUNDLE_PATH calabash ios automation

            Solution 2:
            Open Xcode
            Open organizer (or just press 'Command+ Shift +2')
            Find the application for which you are locating .app file (picture below)

            Thursday, 10 April 2014

            calabash IOS & Android FAQ

            1. What are the installation procedure for calabash iOS in windows? 
            I would say not to try calabash ios with windows.
            Even if you want use windows for calabash ios options are limited.

            2. How to avoid install / uninstall the app every-time for android (while running scripts)?
             For android
            Comment this code in app_installation_hooks.rb file in android support folder 

            3. How to run multiple feature file in one run command?
            Use cucumber tags on features -

            Friday, 4 April 2014

            calabash automation : launch genymotion simulator from command line

            Command to launch genymotion headless -
            player --vm-name Nexus_4

          • if player is not already added to path, add it to path using below command in your ~/.bash_profile

            export PATH=/Applications/$PATH

            When more than one device is connect use 'adb -s' is used to redirect commands to particular device
            Once emulator is running they will be listed under adb devices

             adb devices            
            List of devices attached            
            Verfiy command are send to correct device:

             Send command to click on menu key on android device when multiple devices are connected
            adb -s shell input keyevent KEYCODE_MENU