Class: PageObject::Platforms::WatirWebDriver::PageObject

Inherits:
Object
  • Object
show all
Defined in:
lib/page-object/platforms/watir_webdriver/page_object.rb

Overview

Watir implementation of the page object platform driver. You should not use the class directly. Instead you should include the PageObject module in your page object and use the methods dynamically added from the PageObject::Accessors module.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(browser) ⇒ PageObject



17
18
19
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 17

def initialize(browser)
  @browser = browser
end

Instance Attribute Details

#browserObject (readonly)

Returns the value of attribute browser.



15
16
17
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 15

def browser
  @browser
end

Instance Method Details

#alert(frame = nil, &block) ⇒ Object

platform method to handle an alert popup See PageObject#alert



72
73
74
75
76
77
78
79
80
81
82
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 72

def alert(frame=nil, &block)
  switch_to_frame(frame)
  yield
  value = nil
  if @browser.alert.exists?
    value = @browser.alert.text
    @browser.alert.ok
  end
  switch_to_default_content(frame)
  value
end

#area_for(identifier) ⇒ Object

platform method to retrieve an area element



875
876
877
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 875

def area_for(identifier)
  find_watir_element("area(identifier)", Elements::Area, identifier, 'area')
end

#areas_for(identifier) ⇒ Object

platform method to retrieve an array of area elements



882
883
884
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 882

def areas_for(identifier)
  find_watir_elements("areas(identifier)", Elements::Area, identifier, 'area')
end

#attach_to_window(identifier, &block) ⇒ Object

platform method to handle attaching to a running window See PageObject#attach_to_window



126
127
128
129
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 126

def attach_to_window(identifier, &block)
  win_id = {identifier.keys.first => /#{Regexp.escape(identifier.values.first)}/}
  @browser.window(win_id).use &block
end

#audio_for(identifier) ⇒ Object

platform method to retrieve an audio element



903
904
905
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 903

def audio_for(identifier)
  find_watir_element("audio(identifier)", Elements::Audio, identifier, 'audio')
end

#audios_for(identifier) ⇒ Object

platform method to retrieve an array of audio elements



910
911
912
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 910

def audios_for(identifier)
  find_watir_elements("audios(identifier)", Elements::Audio, identifier, 'audio')
end

#b_for(identifier) ⇒ Object

platform method to retrieve the b element See PageObject::Accessors#h1



986
987
988
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 986

def b_for(identifier)
  find_watir_element("b(identifier)", Elements::Bold, identifier, 'b')
end

#b_text_for(identifier) ⇒ Object

platform method to retrieve the text for a b See PageObject::Accessors#b



978
979
980
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 978

def b_text_for(identifier)
  process_watir_call("b(identifier).text", Elements::Bold, identifier, nil, 'b')
end

#backObject

platform method to go back to the previous page See PageObject#back



170
171
172
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 170

def back
  @browser.back
end

#bs_for(identifier) ⇒ Object

platform method to retrieve an array of bs



993
994
995
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 993

def bs_for(identifier)
  find_watir_elements("bs(identifier)", Elements::Bold, identifier, 'b')
end

#button_for(identifier) ⇒ Object

platform method to retrieve a button element See PageObject::Accessors#button



473
474
475
476
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 473

def button_for(identifier)
  call = "button(identifier)"
  find_watir_element(call, Elements::Button, identifier)
end

#buttons_for(identifier) ⇒ Object

platform method to retrieve an array of button elements



481
482
483
484
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 481

def buttons_for(identifier)
  call = "buttons(identifier)"
  find_watir_elements(call, Elements::Button, identifier)
end

#canvas_for(identifier) ⇒ Object

platform method to retrieve a canvas element



889
890
891
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 889

def canvas_for(identifier)
  find_watir_element("canvas(identifier)", Elements::Canvas, identifier, 'canvas')
end

#canvass_for(identifier) ⇒ Object

platform method to retrieve an array of canvas elements



896
897
898
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 896

def canvass_for(identifier)
  find_watir_elements("canvases(identifier)", Elements::Canvas, identifier, 'canvas')
end

#cell_for(identifier) ⇒ Object

platform method to retrieve a table cell element See PageObject::Accessors#cell



522
523
524
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 522

def cell_for(identifier)
  find_watir_element("td(identifier)", Elements::TableCell, identifier, 'td')
end

#cell_text_for(identifier) ⇒ Object

platform method to retrieve the text from a table cell See PageObject::Accessors#cell



513
514
515
516
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 513

def cell_text_for(identifier)
  process_watir_call("td(identifier).text", Elements::TableCell, identifier,
                     nil, 'td')
end

#cells_for(identifier) ⇒ Object

platform method to retrieve an array of table cell elements



529
530
531
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 529

def cells_for(identifier)
  find_watir_elements("tds(identifier)", Elements::TableCell, identifier, 'td')
end

#check_checkbox(identifier) ⇒ Object

platform method to check a checkbox See PageObject::Accessors#checkbox



348
349
350
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 348

def check_checkbox(identifier)
  process_watir_call("checkbox(identifier).set", Elements::CheckBox, identifier)
end

#checkbox_checked?(identifier) ⇒ Boolean

platform method to determine if a checkbox is checked See PageObject::Accessors#checkbox



364
365
366
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 364

def checkbox_checked?(identifier)
  process_watir_call("checkbox(identifier).set?", Elements::CheckBox, identifier)
end

#checkbox_for(identifier) ⇒ Object

platform method to return a PageObject::Elements::CheckBox element See PageObject::Accessors#checkbox



372
373
374
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 372

def checkbox_for(identifier)
  find_watir_element("checkbox(identifier)", Elements::CheckBox, identifier)
end

#checkboxs_for(identifier) ⇒ Object

platform method to retrieve an array of checkbox elements



379
380
381
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 379

def checkboxs_for(identifier)
  find_watir_elements("checkboxes(identifier)", Elements::CheckBox, identifier)
end

#clear_cookiesObject

platform method to clear the cookies from the browser See PageObject#clear_cookies



186
187
188
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 186

def clear_cookies
  @browser.cookies.clear
end

#click_area_for(identifier) ⇒ Object

platform method to click on an area



868
869
870
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 868

def click_area_for(identifier)
  process_watir_call("area(identifier).click", Elements::Area, identifier, nil, 'area')
end

#click_button_for(identifier) ⇒ Object

platform method to click a button See PageObject::Accessors#button



464
465
466
467
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 464

def click_button_for(identifier)
  call = "button(identifier)"
  process_watir_call("#{call}.click", Elements::Button, identifier)
end

platform method to click a link See PageObject::Accessors#link



322
323
324
325
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 322

def click_link_for(identifier)
  call = "link(identifier)"
  process_watir_call("#{call}.click if identifier", Elements::Link, identifier)
end

#confirm(response, frame = nil, &block) ⇒ Object

platform method to handle a confirm popup See PageObject#confirm



88
89
90
91
92
93
94
95
96
97
98
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 88

def confirm(response, frame=nil, &block)
  switch_to_frame(frame)
  yield
  value = nil
  if @browser.alert.exists?
    value = @browser.alert.text
    response ? @browser.alert.ok : @browser.alert.close
  end
  switch_to_default_content(frame)
  value
end

#current_urlObject

platform method to get the current url See PageObject#current_url



33
34
35
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 33

def current_url
  @browser.url
end

#div_for(identifier) ⇒ Object

platform method to return a PageObject::Elements::Div element See PageObject::Accessors#div



426
427
428
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 426

def div_for(identifier)
  find_watir_element("div(identifier)", Elements::Div, identifier, 'div')
end

#div_text_for(identifier) ⇒ Object

platform method to return the text for a div See PageObject::Accessors#div



418
419
420
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 418

def div_text_for(identifier)
  process_watir_call("div(identifier).text", Elements::Div, identifier, nil, 'div')
end

#divs_for(identifier) ⇒ Object

platform method to retrieve an array of div elements



433
434
435
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 433

def divs_for(identifier)
  find_watir_elements("divs(identifier)", Elements::Div, identifier, 'div')
end

#element_for(tag, identifier) ⇒ Object

platform method to return a PageObject::Elements::Element element See PageObject::Accessors#element



932
933
934
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 932

def element_for(tag, identifier)
  find_watir_element("#{tag.to_s}(identifier)", Elements::Element, identifier, tag.to_s)
end

#element_with_focusObject



131
132
133
134
135
136
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 131

def element_with_focus
  element = browser.execute_script("return document.activeElement")
  type = element.type.to_sym if element.tag_name.to_sym == :input
  cls = ::PageObject::Elements.element_class_for(element.tag_name, type)
  cls.new(element, :platform => :watir_webdriver)    
end

#elements_for(tag, identifier) ⇒ Object

platform method to return an array of PageObject::Elements::Element elements See PageObject::Accessors#element



940
941
942
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 940

def elements_for(tag, identifier)
  find_watir_elements("#{tag.to_s}s(identifier)", Elements::Element, identifier, tag.to_s)
end

#execute_script(script, *args) ⇒ Object

platform method to execute javascript on the browser See PageObject#execute_script



118
119
120
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 118

def execute_script(script, *args)
  @browser.execute_script(script, *args)
end

#file_field_for(identifier) ⇒ Object

platform method to retrieve a file_field element See PageObject::Accessors#file_field



854
855
856
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 854

def file_field_for(identifier)
  find_watir_element("file_field(identifier)", Elements::FileField, identifier)
end

#file_field_value_set(identifier, value) ⇒ Object

platform method to set the file on a file_field element See PageObject::Accessors#file_field



845
846
847
848
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 845

def file_field_value_set(identifier, value)
  process_watir_call("file_field(identifier).set(value)", Elements::FileField,
                     identifier, value)
end

#file_fields_for(identifier) ⇒ Object

platform method to retrieve an array of file field elements



861
862
863
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 861

def file_fields_for(identifier)
  find_watir_elements("file_fields(identifier)", Elements::FileField, identifier)
end

#form_for(identifier) ⇒ Object

platform method to retrieve a form element See PageObject::Accessors#form



576
577
578
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 576

def form_for(identifier)
  find_watir_element("form(identifier)", Elements::Form, identifier)
end

#forms_for(identifier) ⇒ Object

platform method to retrieve an array of forms



583
584
585
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 583

def forms_for(identifier)
  find_watir_elements("forms(identifier)", Elements::Form, identifier)
end

#forwardObject

platform method to go forward to the next page See PageObject#forward



178
179
180
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 178

def forward
  @browser.forward
end

#h1_for(identifier) ⇒ Object

platform method to retrieve the h1 element See PageObject::Accessors#h1



668
669
670
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 668

def h1_for(identifier)
  find_watir_element("h1(identifier)", Elements::Heading, identifier, 'h1')
end

#h1_text_for(identifier) ⇒ Object

platform method to retrieve the text for a h1 See PageObject::Accessors#h1



660
661
662
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 660

def h1_text_for(identifier)
  process_watir_call("h1(identifier).text", Elements::Heading, identifier, nil, 'h1')
end

#h1s_for(identifier) ⇒ Object

platform method to retrieve an array of h1s



675
676
677
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 675

def h1s_for(identifier)
  find_watir_elements("h1s(identifier)", Elements::Heading, identifier, 'h1')
end

#h2_for(identifier) ⇒ Object

platform method to retrieve the h2 element See PageObject::Accessors#h2



691
692
693
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 691

def h2_for(identifier)
  find_watir_element("h2(identifier)", Elements::Heading, identifier, 'h2')
end

#h2_text_for(identifier) ⇒ Object

platform method to retrieve the text for a h2 See PageObject::Accessors#h2



683
684
685
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 683

def h2_text_for(identifier)
  process_watir_call("h2(identifier).text", Elements::Heading, identifier, nil, 'h2')
end

#h2s_for(identifier) ⇒ Object

platform method to retrieve an array of h2s



698
699
700
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 698

def h2s_for(identifier)
  find_watir_elements("h2s(identifier)", Elements::Heading, identifier, 'h2')
end

#h3_for(identifier) ⇒ Object

platform method to retrieve the h3 element See PageObject::Accessors#h3



714
715
716
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 714

def h3_for(identifier)
  find_watir_element("h3(identifier)", Elements::Heading, identifier, 'h3')
end

#h3_text_for(identifier) ⇒ Object

platform method to retrieve the text for a h3 See PageObject::Accessors#h3



706
707
708
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 706

def h3_text_for(identifier)
  process_watir_call("h3(identifier).text", Elements::Heading, identifier, nil, 'h3')
end

#h3s_for(identifier) ⇒ Object

platform method to retrieve an array of h3s



721
722
723
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 721

def h3s_for(identifier)
  find_watir_elements("h3s(identifier)", Elements::Heading, identifier, 'h3')
end

#h4_for(identifier) ⇒ Object

platform method to retrieve the h4 element See PageObject::Accessors#h4



737
738
739
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 737

def h4_for(identifier)
  find_watir_element("h4(identifier)", Elements::Heading, identifier, 'h4')
end

#h4_text_for(identifier) ⇒ Object

platform method to retrieve the text for a h4 See PageObject::Accessors#h4



729
730
731
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 729

def h4_text_for(identifier)
  process_watir_call("h4(identifier).text", Elements::Heading, identifier, nil, 'h4')
end

#h4s_for(identifier) ⇒ Object

platform method to retrieve an array of h4s



744
745
746
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 744

def h4s_for(identifier)
  find_watir_elements("h4s(identifier)", Elements::Heading, identifier, 'h4')
end

#h5_for(identifier) ⇒ Object

platform method to retrieve the h5 element See PageObject::Accessors#h5



760
761
762
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 760

def h5_for(identifier)
  find_watir_element("h5(identifier)", Elements::Heading, identifier, 'h5')
end

#h5_text_for(identifier) ⇒ Object

platform method to retrieve the text for a h5 See PageObject::Accessors#h5



752
753
754
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 752

def h5_text_for(identifier)
  process_watir_call("h5(identifier).text", Elements::Heading, identifier, nil, 'h5')
end

#h5s_for(identifier) ⇒ Object

platform method to retrieve an array of h5s



767
768
769
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 767

def h5s_for(identifier)
  find_watir_elements("h5s(identifier)", Elements::Heading, identifier, 'h5')
end

#h6_for(identifier) ⇒ Object

platform method to retrieve the h6 element See PageObject::Accessors#h6



783
784
785
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 783

def h6_for(identifier)
  find_watir_element("h6(identifier)", Elements::Heading, identifier, 'h6')
end

#h6_text_for(identifier) ⇒ Object

platform method to retrieve the text for a h6 See PageObject::Accessors#h6



775
776
777
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 775

def h6_text_for(identifier)
  process_watir_call("h6(identifier).text", Elements::Heading, identifier, nil, 'h6')
end

#h6s_for(identifier) ⇒ Object

platform method to retrieve an array of h6s



790
791
792
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 790

def h6s_for(identifier)
  find_watir_elements("h6s(identifier)", Elements::Heading, identifier, 'h6')
end

#hidden_field_for(identifier) ⇒ Object

platform method to retrieve a hidden field element See PageObject::Accessors#hidden_field



242
243
244
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 242

def hidden_field_for(identifier)
  find_watir_element("hidden(identifier)", Elements::HiddenField, identifier)
end

#hidden_field_value_for(identifier) ⇒ Object

platform method to get the value stored in a hidden field See PageObject::Accessors#hidden_field



234
235
236
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 234

def hidden_field_value_for(identifier)
  process_watir_call("hidden(identifier).value", Elements::HiddenField, identifier)
end

#hidden_fields_for(identifier) ⇒ Object

platform method to retrieve an array of hidden field elements



249
250
251
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 249

def hidden_fields_for(identifier)
  find_watir_elements("hiddens(identifier)", Elements::HiddenField, identifier)
end

#htmlObject

platform method to retrieve the html for the current page See PageObject#html



49
50
51
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 49

def html
  @browser.html
end

#image_for(identifier) ⇒ Object

platform method to retrieve an image element See PageObject::Accessors#image



561
562
563
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 561

def image_for(identifier)
  find_watir_element("image(identifier)", Elements::Image, identifier)
end

#images_for(identifier) ⇒ Object

platform method to retrieve an array of image elements



568
569
570
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 568

def images_for(identifier)
  find_watir_elements("images(identifier)", Elements::Image, identifier)
end

#in_frame(identifier, frame = nil, &block) ⇒ Object

platform method to switch to a frame and execute a block See PageObject#in_frame



142
143
144
145
146
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 142

def in_frame(identifier, frame=nil, &block)
  frame = [] if frame.nil?
  frame << {frame: identifier}
  block.call(frame)
end

#in_iframe(identifier, frame = nil, &block) ⇒ Object

platform method to switch to an iframe and execute a block See PageObject#in_frame



152
153
154
155
156
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 152

def in_iframe(identifier, frame=nil, &block)
  frame = [] if frame.nil?
  frame << {iframe: identifier}
  block.call(frame)
end

#label_for(identifier) ⇒ Object

platform method to return a PageObject::Elements::Label element See PageObject::Accessors#label



829
830
831
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 829

def label_for(identifier)
  find_watir_element("label(identifier)", Elements::Label, identifier, 'label')
end

#label_text_for(identifier) ⇒ Object

platform method to return the text for a label See PageObject::Accessors#label



821
822
823
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 821

def label_text_for(identifier)
  process_watir_call("label(identifier).text", Elements::Label, identifier, nil, 'label')
end

#labels_for(identifier) ⇒ Object

platform method to retrieve an array of label elements



837
838
839
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 837

def labels_for(identifier)
  find_watir_elements("labels(identifier)", Elements::Label, identifier, 'label')
end

platform method to return a PageObject::Elements::Link object see PageObject::Accessors#link



331
332
333
334
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 331

def link_for(identifier)
  call = "link(identifier)"
  find_watir_element(call, Elements::Link, identifier)
end

platform method to retrieve an array of link elements



339
340
341
342
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 339

def links_for(identifier)
  call = "links(identifier)"
  find_watir_elements(call, Elements::Link, identifier)
end

#list_item_for(identifier) ⇒ Object

platform method to retrieve a list item element See PageObject::Accessors#list_item



599
600
601
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 599

def list_item_for(identifier)
  find_watir_element("li(identifier)", Elements::ListItem, identifier, 'li')
end

#list_item_text_for(identifier) ⇒ Object

platform method to retrieve the text from a list item See PageObject::Accessors#list_item



591
592
593
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 591

def list_item_text_for(identifier)
  process_watir_call("li(identifier).text", Elements::ListItem, identifier, nil, 'li')
end

#list_items_for(identifier) ⇒ Object

platform method to retrieve an array of list items



606
607
608
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 606

def list_items_for(identifier)
  find_watir_elements("lis(identifier)", Elements::ListItem, identifier, 'li')
end

platform method to navigate to a provided url See PageObject#navigate_to



25
26
27
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 25

def navigate_to(url)
  @browser.goto url
end

#ordered_list_for(identifier) ⇒ Object

platform method to retrieve an ordered list element See PageObject::Accessors#ordered_list



645
646
647
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 645

def ordered_list_for(identifier)
  find_watir_element("ol(identifier)", Elements::OrderedList, identifier, 'ol')
end

#ordered_list_text_for(identifier) ⇒ Object

platform method to retrieve the text from an ordered list See PageObject::Accessors#ordered_list



637
638
639
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 637

def ordered_list_text_for(identifier)
  process_watir_call("ol(identifier).text", Elements::OrderedList, identifier, nil, 'ol')
end

#ordered_lists_for(identifier) ⇒ Object

platform method to retrieve an array of ordered lists



652
653
654
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 652

def ordered_lists_for(identifier)
  find_watir_elements("ols(identifier)", Elements::OrderedList, identifier, 'ol')
end

#page_for(identifier, page_class) ⇒ Object

platform method to return a PageObject rooted at an element See PageObject::Accessors#page_section



948
949
950
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 948

def page_for(identifier, page_class)
  find_watir_page(identifier, page_class)
end

#pages_for(identifier, page_class) ⇒ Object

platform method to return a collection of PageObjects rooted at elements See PageObject::Accessors#page_sections



956
957
958
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 956

def pages_for(identifier, page_class)
  SectionCollection.new(find_watir_pages(identifier, page_class))
end

#paragraph_for(identifier) ⇒ Object

platform method to retrieve the paragraph element See PageObject::Accessors#paragraph



806
807
808
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 806

def paragraph_for(identifier)
  find_watir_element("p(identifier)", Elements::Paragraph, identifier, 'p')
end

#paragraph_text_for(identifier) ⇒ Object

platform method to retrieve the text for a paragraph See PageObject::Accessors#paragraph



798
799
800
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 798

def paragraph_text_for(identifier)
  process_watir_call("p(identifier).text", Elements::Paragraph, identifier, nil, 'p')
end

#paragraphs_for(identifier) ⇒ Object

platform method to retrieve an array of paragraph elements



813
814
815
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 813

def paragraphs_for(identifier)
  find_watir_elements("ps(identifier)", Elements::Paragraph, identifier, 'p')
end

#prompt(answer, frame = nil, &block) ⇒ Object

platform method to handle a prompt popup See PageObject#prompt



104
105
106
107
108
109
110
111
112
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 104

def prompt(answer, frame=nil, &block)
  switch_to_frame(frame)
  @browser.wd.execute_script "window.prompt = function(text, value) { window.__lastWatirPrompt = { message: text, default_value: value }; return #{answer}; }"
  yield
  result = @browser.wd.execute_script "return window.__lastWatirPrompt"
  switch_to_default_content(frame)
  result && result.dup.each_key { |k| result[k.to_sym] = result.delete(k) }
  result
end

#radio_button_for(identifier) ⇒ Object

platform method to return a PageObject::Eements::RadioButton element See PageObject::Accessors#radio_button



403
404
405
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 403

def radio_button_for(identifier)
  find_watir_element("radio(identifier)", Elements::RadioButton, identifier)
end

#radio_buttons_for(identifier) ⇒ Object

platform method to retrieve an array of radio button elements



410
411
412
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 410

def radio_buttons_for(identifier)
  find_watir_elements("radios(identifier)", Elements::RadioButton, identifier)
end

#radio_selected?(identifier) ⇒ Boolean

platform method to determine if a radio button is selected See PageObject::Accessors#radio_button



395
396
397
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 395

def radio_selected?(identifier)
  process_watir_call("radio(identifier).set?", Elements::RadioButton, identifier)
end

#refreshObject

platform method to refresh the page See PageObject#refresh



162
163
164
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 162

def refresh
  @browser.refresh
end

#row_for(identifier) ⇒ Object

platform method to retrieve a table row element See PageObject::Accessors#row



546
547
548
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 546

def row_for(identifier)
  find_watir_element("tr(identifier)", Elements::TableRow, identifier, 'tr')
end

#row_text_for(identifier) ⇒ Object

platform method to retrieve the text from a table row See PageObject::Accessors#row



537
538
539
540
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 537

def row_text_for(identifier)
  process_watir_call("tr(identifier).text", Elements::TableRow, identifier,
                     nil, 'tr')
end

#rows_for(identifier) ⇒ Object

platform method to retrieve an array of table row elements



553
554
555
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 553

def rows_for(identifier)
  find_watir_elements("trs(identifier)", Elements::TableRow, identifier, 'tr')
end

#save_screenshot(file_name) ⇒ Object

platform method to save the current screenshot to a file See PageObject#save_screenshot



194
195
196
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 194

def save_screenshot(file_name)
  @browser.wd.save_screenshot(file_name)
end

#select_list_for(identifier) ⇒ Object

platform method to return the select list element See PageObject::Accessors#select_list



307
308
309
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 307

def select_list_for(identifier)
  find_watir_element("select_list(identifier)", Elements::SelectList, identifier)
end

#select_list_value_for(identifier) ⇒ Object

platform method to get the currently selected value from a select list See PageObject::Accessors#select_list



289
290
291
292
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 289

def select_list_value_for(identifier)
  process_watir_call("select_list(identifier).options.find {|o| o.selected?}.text",
                     Elements::SelectList, identifier)
end

#select_list_value_set(identifier, value) ⇒ Object

platform method to select a value from a select list See PageObject::Accessors#select_list



298
299
300
301
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 298

def select_list_value_set(identifier, value)
  process_watir_call("select_list(identifier).select(value)", Elements::SelectList,
                     identifier, value)
end

#select_lists_for(identifier) ⇒ Object

platform method to retrieve an array of select_list elements



314
315
316
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 314

def select_lists_for(identifier)
  find_watir_elements("select_lists(identifier)", Elements::SelectList, identifier)
end

#select_radio(identifier) ⇒ Object

platform method to select a radio button See PageObject::Accessors#radio_button



387
388
389
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 387

def select_radio(identifier)
  process_watir_call("radio(identifier).set", Elements::RadioButton, identifier)
end

#span_for(identifier) ⇒ Object

platform method to return a PageObject::Elements::Span element See PageObject::Accessors#span



449
450
451
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 449

def span_for(identifier)
  find_watir_element("span(identifier)", Elements::Span, identifier, 'span')
end

#span_text_for(identifier) ⇒ Object

platform method to return the text for a span See PageObject::Accessors#span



441
442
443
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 441

def span_text_for(identifier)
  process_watir_call("span(identifier).text", Elements::Span, identifier, nil, 'span')
end

#spans_for(identifier) ⇒ Object

platform method to retrieve an array of span elements



456
457
458
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 456

def spans_for(identifier)
  find_watir_elements("spans(identifier)", Elements::Span, identifier, 'span')
end

#svg_for(identifier) ⇒ Object

platform method to return a svg element



963
964
965
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 963

def svg_for(identifier)
  find_watir_element("element(identifier)", Elements::Element, identifier)
end

#svgs_for(identifier) ⇒ Object

platform method to return an array of svg elements



970
971
972
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 970

def svgs_for(identifier)
  find_watir_elements("element(identifier)", Elements::Element, identifier)
end

#table_for(identifier) ⇒ Object

platform method to retrieve a table element See PageObject::Accessors#table



498
499
500
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 498

def table_for(identifier)
  find_watir_element("table(identifier)", Elements::Table, identifier, 'table')
end

#table_text_for(identifier) ⇒ Object

platform method to return the text for a table See PageObject::Accessors#table



490
491
492
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 490

def table_text_for(identifier)
  process_watir_call("table(identifier).text", Elements::Table, identifier, nil, 'table')
end

#tables_for(identifier) ⇒ Object

platform method to retrieve an array of table elements



505
506
507
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 505

def tables_for(identifier)
  find_watir_elements("tables(identifier)", Elements::Table, identifier, 'table')
end

#textObject

platform method to retrieve the text from the current page See PageObject#text



41
42
43
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 41

def text
  @browser.text
end

#text_area_for(identifier) ⇒ Object

platform method to get the text area element See PageObject::Accessors#text_area



274
275
276
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 274

def text_area_for(identifier)
  find_watir_element("textarea(identifier)", Elements::TextArea, identifier)
end

#text_area_value_for(identifier) ⇒ Object

platform method to get the text from a textarea See PageObject::Accessors#text_area



266
267
268
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 266

def text_area_value_for(identifier)
  process_watir_call("textarea(identifier).value", Elements::TextArea, identifier)
end

#text_area_value_set(identifier, value) ⇒ Object

platform method to set text in a textarea See PageObject::Accessors#text_area



257
258
259
260
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 257

def text_area_value_set(identifier, value)
  process_watir_call("textarea(identifier).set(value)", Elements::TextArea,
                     identifier, value)
end

#text_areas_for(identifier) ⇒ Object

platform method to retrieve an array of textarea elements



281
282
283
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 281

def text_areas_for(identifier)
  find_watir_elements("textareas(identifier)", Elements::TextArea, identifier)
end

#text_field_for(identifier) ⇒ Object

platform method to retrieve a text field element See PageObject::Accessors#text_field



218
219
220
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 218

def text_field_for(identifier)
  find_watir_element("text_field(identifier)", Elements::TextField, identifier)
end

#text_field_value_for(identifier) ⇒ Object

platform method to get the value stored in a text field See PageObject::Accessors#text_field



202
203
204
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 202

def text_field_value_for(identifier)
  process_watir_call("text_field(identifier).value", Elements::TextField, identifier)
end

#text_field_value_set(identifier, value) ⇒ Object

platform method to set the value for a text field See PageObject::Accessors#text_field



210
211
212
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 210

def text_field_value_set(identifier, value)
  process_watir_call("text_field(identifier).set(value)", Elements::TextField, identifier, value)
end

#text_fields_for(identifier) ⇒ Object

platform method to retrieve an array of text field elements



225
226
227
228
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 225

def text_fields_for(identifier)
  elements = find_watir_elements("text_fields(identifier)", Elements::TextField, identifier)
  elements.select {|e| e.element.tag_name == 'input'}
end

#titleObject

platform method to retrieve the title for the current page See PageObject#title



57
58
59
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 57

def title
  @browser.title
end

#uncheck_checkbox(identifier) ⇒ Object

platform method to uncheck a checkbox See PageObject::Accessors#checkbox



356
357
358
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 356

def uncheck_checkbox(identifier)
  process_watir_call("checkbox(identifier).clear", Elements::CheckBox, identifier)
end

#unordered_list_for(identifier) ⇒ Object

platform method to retrieve an unordered list element See PageObject::Accessors#unordered_list



622
623
624
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 622

def unordered_list_for(identifier)
  find_watir_element("ul(identifier)", Elements::UnorderedList, identifier, 'ul')
end

#unordered_list_text_for(identifier) ⇒ Object

platform method to retrieve the text from an unordered list See PageObject::Accessors#unordered_list



614
615
616
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 614

def unordered_list_text_for(identifier)
  process_watir_call("ul(identifier).text", Elements::UnorderedList, identifier, nil, 'ul')
end

#unordered_lists_for(identifier) ⇒ Object

platform method to retrieve an array of unordered lists



629
630
631
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 629

def unordered_lists_for(identifier)
  find_watir_elements("uls(identifier)", Elements::UnorderedList, identifier, 'ul')
end

#video_for(identifier) ⇒ Object

platform method to retrieve a video element



917
918
919
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 917

def video_for(identifier)
  find_watir_element("video(identifier)", Elements::Video, identifier, 'video')
end

#videos_for(identifier) ⇒ Object

platform method to retrieve an array of video elements



924
925
926
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 924

def videos_for(identifier)
  find_watir_elements("videos(identifier)", Elements::Video, identifier, 'video')
end

#wait_until(timeout, message = nil, &block) ⇒ Object

platform method to wait for a block to return true See PageObject#wait_until



64
65
66
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 64

def wait_until(timeout, message = nil, &block)
  @browser.wait_until(timeout, message, &block)
end