module <%= app_name.camelize %> =begin Example for defining page elements. Add classes for each page/section of your application inheriting from SystemTest. Below are some examples for gmail: class LoginPageElements < SystemTest def initialize element(:more_post_link) {$browser.link(:text, /more posts/i)} element(:user_input) {$browser.text_field(:id, /email/i)} element(:password_input) {$browser.text_field(:id, /passwd/i)} element(:submit_button) {$browser.button(:value, "Sign in")} end end class CommonFrames < SystemTest def initialize element(:canvas) { $browser.frame(:id, /canvas_frame/) } end end class UserHeaderElements < SystemTest def initialize frame = $browser.frame(:id, /canvas_frame/) element(:settings_link) {frame.div(:id, /guser/i).link(:text, /settings/i)} element(:older_version_link) {frame.div(:id, /guser/i).link(:text, /older version/i)} element(:help_link) {frame.div(:id, /guser/i).link(:text, /help/i)} element(:logout_link) {frame.div(:id, /guser/i).link(:text, /sign out/i)} end end class MessageFilterElements < SystemTest def initialize frame = $browser.frame(:id, /canvas_frame/) element(:all) {frame.span(:class, /yu/i).span(:selector, /all/i)} element(:none) {frame.span(:class, /yu/i).span(:selector, /none/i)} element(:read) {frame.span(:class, /yu/i).span(:selector, /read/i)} element(:unread) {frame.span(:class, /yu/i).span(:selector, /unread/i)} element(:starred) {frame.span(:class, /yu/i).span(:selector, /starred/i)} element(:unstarred) {frame.span(:class, /yu/i).span(:selector, /unstarred/i)} end end class ChatElements < SystemTest def initialize frame = $browser.frame(:id, /canvas_frame/) element(:set_status_link) {frame.div(:id, /:ml/i)} end end Usage: If the user needs to access elements from a test class the user should defind an instance of Gmail::LoginPageElements in the setup method allowing access to the defined methods from any test method. It is most practical to place the Gmail::LoginPageElements instance in a flow class, ensuring it's accessable to class methods (attr_reader). An example login flow is listed in flows directory =end end