Class: PageObject::Platforms::Watir::PageObject

Inherits:
Object
  • Object
show all
Defined in:
lib/page-object/platforms/watir/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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(browser) ⇒ PageObject

Returns a new instance of PageObject.


21
22
23
# File 'lib/page-object/platforms/watir/page_object.rb', line 21

def initialize(browser)
  @browser = browser
end

Instance Attribute Details

#browserObject (readonly)

Returns the value of attribute browser


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

def browser
  @browser
end

Class Method Details

.define_widget_accessors(widget_tag, widget_class, base_element_tag) ⇒ Object


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

def self.define_widget_accessors(widget_tag, widget_class, base_element_tag)
  define_widget_singular_accessor(base_element_tag, widget_class, widget_tag)
  define_widget_multiple_accessor(base_element_tag, widget_class, widget_tag)
end

Instance Method Details

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

platform method to handle an alert popup See PageObject#alert


76
77
78
79
80
81
82
83
84
85
86
# File 'lib/page-object/platforms/watir/page_object.rb', line 76

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


920
921
922
# File 'lib/page-object/platforms/watir/page_object.rb', line 920

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


927
928
929
# File 'lib/page-object/platforms/watir/page_object.rb', line 927

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


130
131
132
133
# File 'lib/page-object/platforms/watir/page_object.rb', line 130

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


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

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


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

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#b


1031
1032
1033
# File 'lib/page-object/platforms/watir/page_object.rb', line 1031

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


1023
1024
1025
# File 'lib/page-object/platforms/watir/page_object.rb', line 1023

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


174
175
176
# File 'lib/page-object/platforms/watir/page_object.rb', line 174

def back
  @browser.back
end

#bs_for(identifier) ⇒ Object

platform method to retrieve an array of bs


1038
1039
1040
# File 'lib/page-object/platforms/watir/page_object.rb', line 1038

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


510
511
512
513
# File 'lib/page-object/platforms/watir/page_object.rb', line 510

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


518
519
520
521
# File 'lib/page-object/platforms/watir/page_object.rb', line 518

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


934
935
936
# File 'lib/page-object/platforms/watir/page_object.rb', line 934

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


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

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


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

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


550
551
552
553
# File 'lib/page-object/platforms/watir/page_object.rb', line 550

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


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

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


385
386
387
# File 'lib/page-object/platforms/watir/page_object.rb', line 385

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)

401
402
403
# File 'lib/page-object/platforms/watir/page_object.rb', line 401

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


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

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


416
417
418
# File 'lib/page-object/platforms/watir/page_object.rb', line 416

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


190
191
192
# File 'lib/page-object/platforms/watir/page_object.rb', line 190

def clear_cookies
  @browser.cookies.clear
end

#click_area_for(identifier) ⇒ Object

platform method to click on an area


913
914
915
# File 'lib/page-object/platforms/watir/page_object.rb', line 913

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


501
502
503
504
# File 'lib/page-object/platforms/watir/page_object.rb', line 501

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


359
360
361
362
# File 'lib/page-object/platforms/watir/page_object.rb', line 359

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


92
93
94
95
96
97
98
99
100
101
102
# File 'lib/page-object/platforms/watir/page_object.rb', line 92

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


37
38
39
# File 'lib/page-object/platforms/watir/page_object.rb', line 37

def current_url
  @browser.url
end

#date_field_for(identifier) ⇒ Object

platform method to retrieve a date field element See PageObject::Accessors#date_field


254
255
256
# File 'lib/page-object/platforms/watir/page_object.rb', line 254

def date_field_for(identifier)
  find_watir_element("date_field(identifier)", Elements::DateField, identifier)
end

#date_field_value_for(identifier) ⇒ Object

platform method to get the value stored in a date field See PageObject::Accessors#date_field


238
239
240
# File 'lib/page-object/platforms/watir/page_object.rb', line 238

def date_field_value_for(identifier)
  process_watir_call("date_field(identifier).value", Elements::DateField, identifier)
end

#date_field_value_set(identifier, value) ⇒ Object

platform method to set the value for a date field See PageObject::Accessors#date_field


246
247
248
# File 'lib/page-object/platforms/watir/page_object.rb', line 246

def date_field_value_set(identifier, value)
  process_watir_call("date_field(identifier).set(value)", Elements::DateField, identifier, value)
end

#date_fields_for(identifier) ⇒ Object

platform method to retrieve an array of date field elements


261
262
263
# File 'lib/page-object/platforms/watir/page_object.rb', line 261

def date_fields_for(identifier)
  find_watir_elements("date_fields(identifier)", Elements::DateField, identifier)
end

#div_for(identifier) ⇒ Object

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


463
464
465
# File 'lib/page-object/platforms/watir/page_object.rb', line 463

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


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

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


470
471
472
# File 'lib/page-object/platforms/watir/page_object.rb', line 470

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


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

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

#element_with_focusObject


135
136
137
138
139
140
# File 'lib/page-object/platforms/watir/page_object.rb', line 135

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)
end

#elements_for(tag, identifier) ⇒ Object

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


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

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


122
123
124
# File 'lib/page-object/platforms/watir/page_object.rb', line 122

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


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

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


890
891
892
893
# File 'lib/page-object/platforms/watir/page_object.rb', line 890

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


906
907
908
# File 'lib/page-object/platforms/watir/page_object.rb', line 906

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


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

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


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

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


182
183
184
# File 'lib/page-object/platforms/watir/page_object.rb', line 182

def forward
  @browser.forward
end

#h1_for(identifier) ⇒ Object

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


835
836
837
# File 'lib/page-object/platforms/watir/page_object.rb', line 835

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


277
278
279
# File 'lib/page-object/platforms/watir/page_object.rb', line 277

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


269
270
271
# File 'lib/page-object/platforms/watir/page_object.rb', line 269

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


284
285
286
# File 'lib/page-object/platforms/watir/page_object.rb', line 284

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


53
54
55
# File 'lib/page-object/platforms/watir/page_object.rb', line 53

def html
  @browser.html
end

#i_for(identifier) ⇒ Object

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


1054
1055
1056
# File 'lib/page-object/platforms/watir/page_object.rb', line 1054

def i_for(identifier)
  find_watir_element("i(identifier)", Elements::Italic, identifier, 'i')
end

#i_text_for(identifier) ⇒ Object

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


1046
1047
1048
# File 'lib/page-object/platforms/watir/page_object.rb', line 1046

def i_text_for(identifier)
  process_watir_call("i(identifier).text", Elements::Italic, identifier, nil, 'i')
end

#image_for(identifier) ⇒ Object

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


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

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

#image_loaded_for(identifier) ⇒ Object

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


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

def image_loaded_for(identifier)
  process_watir_call("image(identifier).loaded?", Elements::Image, identifier)
end

#images_for(identifier) ⇒ Object

platform method to retrieve an array of image elements


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

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


146
147
148
149
150
# File 'lib/page-object/platforms/watir/page_object.rb', line 146

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


156
157
158
159
160
# File 'lib/page-object/platforms/watir/page_object.rb', line 156

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

#is_for(identifier) ⇒ Object

platform method to retrieve an array of is


1061
1062
1063
# File 'lib/page-object/platforms/watir/page_object.rb', line 1061

def is_for(identifier)
  find_watir_elements("is(identifier)", Elements::Italic, identifier, 'i')
end

#label_for(identifier) ⇒ Object

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


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

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


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

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


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

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


368
369
370
371
# File 'lib/page-object/platforms/watir/page_object.rb', line 368

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

platform method to retrieve an array of link elements


376
377
378
379
# File 'lib/page-object/platforms/watir/page_object.rb', line 376

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


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

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


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

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


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

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


29
30
31
# File 'lib/page-object/platforms/watir/page_object.rb', line 29

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


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

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


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

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


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

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


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

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


1001
1002
1003
# File 'lib/page-object/platforms/watir/page_object.rb', line 1001

def pages_for(identifier, page_class)
  SectionCollection[*find_watir_pages(identifier, page_class)]
end

#paragraph_for(identifier) ⇒ Object

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


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

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


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

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


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

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


108
109
110
111
112
113
114
115
116
# File 'lib/page-object/platforms/watir/page_object.rb', line 108

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


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

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


447
448
449
# File 'lib/page-object/platforms/watir/page_object.rb', line 447

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)

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

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

#refreshObject

platform method to refresh the page See PageObject#refresh


166
167
168
# File 'lib/page-object/platforms/watir/page_object.rb', line 166

def refresh
  @browser.refresh
end

#row_for(identifier) ⇒ Object

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


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

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


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

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


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

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


198
199
200
# File 'lib/page-object/platforms/watir/page_object.rb', line 198

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


344
345
346
# File 'lib/page-object/platforms/watir/page_object.rb', line 344

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


324
325
326
327
328
329
# File 'lib/page-object/platforms/watir/page_object.rb', line 324

def select_list_value_for(identifier)
  options = find_watir_elements("select_list(identifier).selected_options",
                     Elements::SelectList, identifier)
  return nil if options.empty?
  options.first.text
end

#select_list_value_set(identifier, value) ⇒ Object

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


335
336
337
338
# File 'lib/page-object/platforms/watir/page_object.rb', line 335

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


351
352
353
# File 'lib/page-object/platforms/watir/page_object.rb', line 351

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


424
425
426
# File 'lib/page-object/platforms/watir/page_object.rb', line 424

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


486
487
488
# File 'lib/page-object/platforms/watir/page_object.rb', line 486

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


478
479
480
# File 'lib/page-object/platforms/watir/page_object.rb', line 478

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


493
494
495
# File 'lib/page-object/platforms/watir/page_object.rb', line 493

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


1008
1009
1010
# File 'lib/page-object/platforms/watir/page_object.rb', line 1008

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


1015
1016
1017
# File 'lib/page-object/platforms/watir/page_object.rb', line 1015

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


535
536
537
# File 'lib/page-object/platforms/watir/page_object.rb', line 535

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


527
528
529
# File 'lib/page-object/platforms/watir/page_object.rb', line 527

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


542
543
544
# File 'lib/page-object/platforms/watir/page_object.rb', line 542

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


45
46
47
# File 'lib/page-object/platforms/watir/page_object.rb', line 45

def text
  @browser.text
end

#text_area_for(identifier) ⇒ Object

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


309
310
311
# File 'lib/page-object/platforms/watir/page_object.rb', line 309

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


301
302
303
# File 'lib/page-object/platforms/watir/page_object.rb', line 301

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


292
293
294
295
# File 'lib/page-object/platforms/watir/page_object.rb', line 292

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


316
317
318
# File 'lib/page-object/platforms/watir/page_object.rb', line 316

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


222
223
224
# File 'lib/page-object/platforms/watir/page_object.rb', line 222

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


206
207
208
# File 'lib/page-object/platforms/watir/page_object.rb', line 206

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


214
215
216
# File 'lib/page-object/platforms/watir/page_object.rb', line 214

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


229
230
231
232
# File 'lib/page-object/platforms/watir/page_object.rb', line 229

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


61
62
63
# File 'lib/page-object/platforms/watir/page_object.rb', line 61

def title
  @browser.title
end

#uncheck_checkbox(identifier) ⇒ Object

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


393
394
395
# File 'lib/page-object/platforms/watir/page_object.rb', line 393

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


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

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


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

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


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

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


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

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


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

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


68
69
70
# File 'lib/page-object/platforms/watir/page_object.rb', line 68

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