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

Returns a new instance of 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



851
852
853
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 851

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



858
859
860
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 858

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



879
880
881
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 879

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



886
887
888
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 886

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



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

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



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

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



953
954
955
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 953

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 = call_for_watir_element(identifier, "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 = call_for_watir_elements(identifier, "buttons(identifier)")
  find_watir_elements(call, Elements::Button, identifier)
end

#canvas_for(identifier) ⇒ Object

platform method to retrieve a canvas element



865
866
867
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 865

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



872
873
874
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 872

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

Returns:

  • (Boolean)


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



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

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 = call_for_watir_element(identifier, "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 = call_for_watir_element(identifier, "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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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 = call_for_watir_element(identifier, "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 = call_for_watir_elements(identifier, "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



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

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



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

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



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

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



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

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



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

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



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

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

#paragraph_for(identifier) ⇒ Object

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



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

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



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

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



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

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

Returns:

  • (Boolean)


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

#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



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

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



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

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



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

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



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

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



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

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



893
894
895
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 893

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



900
901
902
# File 'lib/page-object/platforms/watir_webdriver/page_object.rb', line 900

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