Module: Celerity::Container

Includes:
Celerity::Exception, Celerity::ShortInspect
Defined in:
lib/celerity/container.rb,
lib/celerity/watir_compatibility.rb

Overview

This class contains methods for accessing elements inside a container, usually the Browser object, meaning the current page. The most common syntax is

  browser.elem(:attribute, 'value')

Note that the element is located lazily, so no exceptions will be raised if the element doesn’t exist until you call a method on the resulting object. To do this you would normally use Element#exists? or an action method, like ClickableElement#click. You can also pass in a hash:

  browser.link(:index => 1).click

All elements support multiple attributes identification using the hash syntax (though this might not always be compatible with Watir):

  browser.span(:class_name => 'product', :index => 5).text

Checkboxes and radio buttons support a special three-argument syntax:

  browser.check_box(:name, 'a_name', '1234').set

You can also get all the elements of a certain type by using the plural form (@see Celerity::ElementCollection):

  browser.links # => #<Celerity::Links:0x7a1c2da2 ...>

Attribute Summary

Method Summary

Methods included from Celerity::ShortInspect

#short_inspect

Attribute Details

- (Object) browser (readonly)

Points back to the Browser instance that contains this element



36
37
38
# File 'lib/celerity/container.rb', line 36

def browser
  @browser
end

Method Details

- (Celerity::Area) area(*args)

Returns:



86
87
88
# File 'lib/celerity/container.rb', line 86

def area(*args)
  Area.new(self, *args)
end

- (Celerity::Areas) areas

Returns:



94
95
96
# File 'lib/celerity/container.rb', line 94

def areas
  Areas.new(self)
end

- (Celerity::Button) button(*args)

Returns:



102
103
104
# File 'lib/celerity/container.rb', line 102

def button(*args)
  Button.new(self, *args)
end

- (Celerity::Buttons) buttons

Returns:



110
111
112
# File 'lib/celerity/container.rb', line 110

def buttons
  Buttons.new(self)
end

- (Celerity::TableCell) cell(*args) Also known as: td

Returns:



118
119
120
# File 'lib/celerity/container.rb', line 118

def cell(*args)
  TableCell.new(self, *args)
end

- (Celerity::TableCells) cells Also known as: tds



127
128
129
# File 'lib/celerity/container.rb', line 127

def cells
  TableCells.new(self)
end

- (Celerity::CheckBox) check_box(*args) Also known as: checkBox, checkbox

Since finding checkboxes by value is very common, you can use this shorthand:

  browser.check_box(:name, 'a_name', '1234').set

or

  browser.check_box(:name => 'a_name', :value => '1234').set

Returns:



144
145
146
# File 'lib/celerity/container.rb', line 144

def check_box(*args)
  CheckBox.new(self, *args)
end

- (Celerity::CheckBoxes) checkboxes



152
153
154
# File 'lib/celerity/container.rb', line 152

def checkboxes
  CheckBoxes.new(self)
end

- (Object) container=(container)

Used internally to update the container object.



72
73
74
75
76
# File 'lib/celerity/container.rb', line 72

def container=(container)
  @container = container
  @browser = container.browser
  container
end

- (Fixnum) contains_text(expected_text)

Check if the element contains the given text.

Parameters:

  • (String, Regexp) expected_text — The text to look for.

Returns:

  • (Fixnum, nil) — The index of the matched text, or nil if it doesn’t match.


45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/celerity/container.rb', line 45

def contains_text(expected_text)
  assert_exists
  return nil unless respond_to? :text

  case expected_text
  when Regexp
    text() =~ expected_text
  when String
    text().index(expected_text)
  else
    raise TypeError, "expected String or Regexp, got #{expected_text.inspect}:#{expected_text.class}"
  end
end

- (Celerity::Dd) dd(*args)

Returns:



160
161
162
# File 'lib/celerity/container.rb', line 160

def dd(*args)
  Dd.new(self, *args)
end

- (Celerity::Dds) dds

Returns:



168
169
170
# File 'lib/celerity/container.rb', line 168

def dds
  Dds.new(self)
end

- (Celerity::Div) div(*args)

Returns:



176
177
178
# File 'lib/celerity/container.rb', line 176

def div(*args)
  Div.new(self, *args)
end

- (Celerity::Divs) divs

Returns:



184
185
186
# File 'lib/celerity/container.rb', line 184

def divs
  Divs.new(self)
end

- (Celerity::Dl) dl(*args)

Returns:



192
193
194
# File 'lib/celerity/container.rb', line 192

def dl(*args)
  Dl.new(self, *args)
end

- (Celerity::Dls) dls

Returns:



200
201
202
# File 'lib/celerity/container.rb', line 200

def dls
  Dls.new(self)
end

- (Celerity::Dt) dt(*args)

Returns:



208
209
210
# File 'lib/celerity/container.rb', line 208

def dt(*args)
  Dt.new(self, *args)
end

- (Celerity::Dts) dts

Returns:



216
217
218
# File 'lib/celerity/container.rb', line 216

def dts
  Dts.new(self)
end

- (Celerity::Em) em(*args)

Returns:



224
225
226
# File 'lib/celerity/container.rb', line 224

def em(*args)
  Em.new(self, *args)
end

- (Celerity::Ems) ems

Returns:



232
233
234
# File 'lib/celerity/container.rb', line 232

def ems
  Ems.new(self)
end

- (Celerity::FileField) file_field(*args)

Returns:



240
241
242
# File 'lib/celerity/container.rb', line 240

def file_field(*args)
  FileField.new(self, *args)
end

- (Celerity::FileFields) file_fields



248
249
250
# File 'lib/celerity/container.rb', line 248

def file_fields
  FileFields.new(self)
end

- (Celerity::Form) form(*args)

Returns:



256
257
258
# File 'lib/celerity/container.rb', line 256

def form(*args)
  Form.new(self, *args)
end

- (Celerity::Forms) forms

Returns:



264
265
266
# File 'lib/celerity/container.rb', line 264

def forms
  Forms.new(self)
end

- (Celerity::Frame) frame(*args)

Returns:



272
273
274
# File 'lib/celerity/container.rb', line 272

def frame(*args)
  Frame.new(self, *args)
end

- (Celerity::Frames) frames

Returns:



280
281
282
# File 'lib/celerity/container.rb', line 280

def frames
  Frames.new(self)
end

- (Celerity::H1) h1(*args)

Returns:



288
289
290
# File 'lib/celerity/container.rb', line 288

def h1(*args)
  H1.new(self, *args)
end

- (Celerity::H1s) h1s

Returns:



296
297
298
# File 'lib/celerity/container.rb', line 296

def h1s
  H1s.new(self)
end

- (Celerity::H2) h2(*args)

Returns:



304
305
306
# File 'lib/celerity/container.rb', line 304

def h2(*args)
  H2.new(self, *args)
end

- (Celerity::H2s) h2s

Returns:



312
313
314
# File 'lib/celerity/container.rb', line 312

def h2s
  H2s.new(self)
end

- (Celerity::H3) h3(*args)

Returns:



320
321
322
# File 'lib/celerity/container.rb', line 320

def h3(*args)
  H3.new(self, *args)
end

- (Celerity::H3s) h3s

Returns:



328
329
330
# File 'lib/celerity/container.rb', line 328

def h3s
  H3s.new(self)
end

- (Celerity::H4) h4(*args)

Returns:



336
337
338
# File 'lib/celerity/container.rb', line 336

def h4(*args)
  H4.new(self, *args)
end

- (Celerity::H4s) h4s

Returns:



344
345
346
# File 'lib/celerity/container.rb', line 344

def h4s
  H4s.new(self)
end

- (Celerity::H5) h5(*args)

Returns:



352
353
354
# File 'lib/celerity/container.rb', line 352

def h5(*args)
  H5.new(self, *args)
end

- (Celerity::H5s) h5s

Returns:



360
361
362
# File 'lib/celerity/container.rb', line 360

def h5s
  H5s.new(self)
end

- (Celerity::H6) h6(*args)

Returns:



368
369
370
# File 'lib/celerity/container.rb', line 368

def h6(*args)
  H6.new(self, *args)
end

- (Celerity::H6s) h6s

Returns:



376
377
378
# File 'lib/celerity/container.rb', line 376

def h6s
  H6s.new(self)
end

- (Celerity::Hidden) hidden(*args)

Returns:



384
385
386
# File 'lib/celerity/container.rb', line 384

def (*args)
  .new(self, *args)
end

- (Celerity::Hiddens) hiddens

Returns:



392
393
394
# File 'lib/celerity/container.rb', line 392

def hiddens
  Hiddens.new(self)
end

- (Celerity::Image) image(*args)

Returns:



400
401
402
# File 'lib/celerity/container.rb', line 400

def image(*args)
  Image.new(self, *args)
end

- (Celerity::Images) images

Returns:



408
409
410
# File 'lib/celerity/container.rb', line 408

def images
  Images.new(self)
end

- (Object) inspect

Override inspect for readability



63
64
65
# File 'lib/celerity/container.rb', line 63

def inspect
  short_inspect :include => %w[@conditions @object]
end

- (Celerity::Label) label(*args)

Returns:



416
417
418
# File 'lib/celerity/container.rb', line 416

def label(*args)
  Label.new(self, *args)
end

- (Celerity::Labels) labels

Returns:



424
425
426
# File 'lib/celerity/container.rb', line 424

def labels
  Labels.new(self)
end

- (Celerity::Li) li(*args)

Returns:



432
433
434
# File 'lib/celerity/container.rb', line 432

def li(*args)
  Li.new(self, *args)
end

Returns:



448
449
450
# File 'lib/celerity/container.rb', line 448

def link(*args)
  Link.new(self, *args)
end

Returns:



456
457
458
# File 'lib/celerity/container.rb', line 456

def links
  Links.new(self)
end

- (Celerity::Lis) lis

Returns:



440
441
442
# File 'lib/celerity/container.rb', line 440

def lis
  Lis.new(self)
end

- (Celerity::Map) map(*args)

Returns:



464
465
466
# File 'lib/celerity/container.rb', line 464

def map(*args)
  Map.new(self, *args)
end

- (Celerity::Maps) maps

Returns:



472
473
474
# File 'lib/celerity/container.rb', line 472

def maps
  Maps.new(self)
end

- (Celerity::Meta) meta(*args)

Returns:



480
481
482
# File 'lib/celerity/container.rb', line 480

def meta(*args)
  Meta.new(self, *args)
end

- (Celerity::Metas) metas(*args)

Returns:



488
489
490
# File 'lib/celerity/container.rb', line 488

def metas(*args)
  Metas.new(self, *args)
end

- (Celerity::Ol) ol(*args)

Returns:



496
497
498
# File 'lib/celerity/container.rb', line 496

def ol(*args)
  Ol.new(self, *args)
end

- (Celerity::Ols) ols

Returns:



504
505
506
# File 'lib/celerity/container.rb', line 504

def ols
  Ols.new(self)
end

- (Celerity::Option) option(*args)

Returns:



512
513
514
# File 'lib/celerity/container.rb', line 512

def option(*args)
  Option.new(self, *args)
end

- (Celerity::P) p(*args)

Returns:



520
521
522
# File 'lib/celerity/container.rb', line 520

def p(*args)
  P.new(self, *args)
end

- (Celerity::Pre) pre(*args)

Returns:



536
537
538
# File 'lib/celerity/container.rb', line 536

def pre(*args)
  Pre.new(self, *args)
end

- (Celerity::Pres) pres

Returns:



544
545
546
# File 'lib/celerity/container.rb', line 544

def pres
  Pres.new(self)
end

- (Celerity::Ps) ps

Returns:



528
529
530
# File 'lib/celerity/container.rb', line 528

def ps
  Ps.new(self)
end

- (Celerity::Radio) radio(*args)

Since finding radios by value is very common, you can use this shorthand:

  browser.radio(:name, 'a_name', '1234').set

or

  browser.radio(:name => 'a_name', :value => '1234').set

Returns:



560
561
562
# File 'lib/celerity/container.rb', line 560

def radio(*args)
  Radio.new(self, *args)
end

- (Celerity::Radios) radios

Returns:



568
569
570
# File 'lib/celerity/container.rb', line 568

def radios
  Radios.new(self)
end

- (Celerity::TableRow) row(*args)

Returns:



576
577
578
# File 'lib/celerity/container.rb', line 576

def row(*args)
  TableRow.new(self, *args)
end

- (Celerity::TableRows) rows

Returns:



584
585
586
# File 'lib/celerity/container.rb', line 584

def rows
  TableRows.new(self)
end

- (Celerity::SelectList) select_list(*args)



592
593
594
# File 'lib/celerity/container.rb', line 592

def select_list(*args)
  SelectList.new(self, *args)
end

- (Celerity::SelectLists) select_lists



600
601
602
# File 'lib/celerity/container.rb', line 600

def select_lists
  SelectLists.new(self)
end

- (Celerity::Span) span(*args)

Returns:



608
609
610
# File 'lib/celerity/container.rb', line 608

def span(*args)
  Span.new(self, *args)
end

- (Celerity::Spans) spans

Returns:



616
617
618
# File 'lib/celerity/container.rb', line 616

def spans
  Spans.new(self)
end

- (Celerity::Spans) strong(*args)

Returns:



624
625
626
# File 'lib/celerity/container.rb', line 624

def strong(*args)
  Strong.new(self, *args)
end

- (Celerity::Strongs) strongs

Returns:



632
633
634
# File 'lib/celerity/container.rb', line 632

def strongs
  Strongs.new(self)
end

- (Celerity::Table) table(*args)

Returns:



640
641
642
# File 'lib/celerity/container.rb', line 640

def table(*args)
  Table.new(self, *args)
end

- (Celerity::Tables) tables

Returns:



648
649
650
# File 'lib/celerity/container.rb', line 648

def tables
  Tables.new(self)
end

- (Celerity::TableBodies) tbodies Also known as: bodies



664
665
666
# File 'lib/celerity/container.rb', line 664

def tbodies
  TableBodies.new(self)
end

- (Celerity::TableBody) tbody(*args) Also known as: body

Returns:



656
657
658
# File 'lib/celerity/container.rb', line 656

def tbody(*args)
  TableBody.new(self, *args)
end

- (Celerity::TextField) text_field(*args)

Returns:



672
673
674
# File 'lib/celerity/container.rb', line 672

def text_field(*args)
  TextField.new(self, *args)
end

- (Celerity::TextFields) text_fields



680
681
682
# File 'lib/celerity/container.rb', line 680

def text_fields
  TextFields.new(self)
end

- (Celerity::TableFooter) tfoot(*args)



688
689
690
# File 'lib/celerity/container.rb', line 688

def tfoot(*args)
  TableFooter.new(self, *args)
end

- (Celerity::TableFooters) tfoots Also known as: tfeet



696
697
698
# File 'lib/celerity/container.rb', line 696

def tfoots
  TableFooters.new(self)
end

- (Celerity::Th) th(*args)

Watir’s cells() won’t find elements. This is a workaround.

Returns:



708
709
710
# File 'lib/celerity/container.rb', line 708

def th(*args)
  Th.new(self, *args)
end

- (Celerity::TableHeader) thead(*args)



725
726
727
# File 'lib/celerity/container.rb', line 725

def thead(*args)
  TableHeader.new(self, *args)
end

- (Celerity::TableHeaders) theads



733
734
735
# File 'lib/celerity/container.rb', line 733

def theads
  TableHeaders.new(self)
end

- (Object) ths

FIXME: implement or change api,

Raises:

  • (NotImplementedError)

See Also:

  • th


717
718
719
# File 'lib/celerity/container.rb', line 717

def ths
  raise NotImplementedError
end

- (Celerity::Ul) ul(*args)

Returns:



741
742
743
# File 'lib/celerity/container.rb', line 741

def ul(*args)
  Ul.new(self, *args)
end

- (Celerity::Uls) uls

Returns:



749
750
751
# File 'lib/celerity/container.rb', line 749

def uls
  Uls.new(self)
end