cornucopia 0.1.46 → 0.1.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0a8e94bb41c7949e5e0dbbe66d6dd7b7f96fc435
4
- data.tar.gz: d1320a0ddc572ee057fca960c0c0fe4f9610052f
3
+ metadata.gz: fb400b1cefc8f1c4c8c8c36aa3f269b934f692d6
4
+ data.tar.gz: 4fedbfb5533530aca447da92ebd865ee920161c4
5
5
  SHA512:
6
- metadata.gz: cad4332db00edc14962d0ac7ff22dd86f22f4a33e9f776536110606f14e903e1e2cba4a34e422f36538971e3e0bea0ff421c664af67d7a6d202f45db1a2af4e0
7
- data.tar.gz: c978849262aac948e4743cc2556cd41b1bd62c3434aad3eeb85fb3f0ec590230c77d5fe7b0be28bd99cecb15edf65e2a0cb81e70424de8d7fc1afbe980d40b7d
6
+ metadata.gz: 8e15791520031a874468210ce5c25c476119dd38eac13dce59076b2674fef68947292c91300e74576fa0daa44abc012467e757e8c27702b87c85133ccabbc2d3
7
+ data.tar.gz: 1df746c8c07b51e05641b3446c31479afc400d1896cc0e63bc0100c948f7a6e351eff2eaf5874255f348096970ac53f9e378038e0136df62d399ad289c8bd291
@@ -142,10 +142,21 @@ module Cornucopia
142
142
  can_dump
143
143
  end
144
144
 
145
+ def capybara_session
146
+ if Object.const_defined?("::Capybara") &&
147
+ ::Capybara.send(:session_pool).present?
148
+ my_page = ::Capybara.current_session
149
+
150
+ my_page if (my_page && my_page.current_url.present? && my_page.current_url != "about:blank")
151
+ end
152
+ rescue StandardError
153
+ nil
154
+ end
155
+
145
156
  # def dump_detail_args(attempt_retry, attempt_alternate_retry)
146
157
  def dump_detail_args(attempt_retry)
147
158
  check_args = search_args.clone
148
- my_page = ::Capybara.current_session
159
+ my_page = capybara_session
149
160
 
150
161
  check_args << options.clone
151
162
  check_args << !!attempt_retry
@@ -363,7 +374,9 @@ module Cornucopia
363
374
 
364
375
  def all_other_elements
365
376
  unless @all_other_elements
366
- from_element = ::Capybara::current_session
377
+ from_element = capybara_session
378
+
379
+ return unless from_element
367
380
 
368
381
  begin
369
382
  @all_other_elements = from_element.all(*search_args, visible: false, __cornucopia_no_analysis: true).to_a
@@ -464,6 +477,17 @@ module Cornucopia
464
477
 
465
478
  attr_reader :found_element
466
479
 
480
+ def capybara_session
481
+ if Object.const_defined?("::Capybara") &&
482
+ ::Capybara.send(:session_pool).present?
483
+ my_page = ::Capybara.current_session
484
+
485
+ my_page if (my_page && my_page.current_url.present? && my_page.current_url != "about:blank")
486
+ end
487
+ rescue StandardError
488
+ nil
489
+ end
490
+
467
491
  def ==(comparison_object)
468
492
  comparison_object.equal?(self) ||
469
493
  (comparison_object.instance_of?(self.class) &&
@@ -505,9 +529,10 @@ module Cornucopia
505
529
 
506
530
  instance_variable_set("@native_class", @found_element[:class])
507
531
 
508
- if ::Capybara.current_session.driver.respond_to?(:browser) &&
509
- ::Capybara.current_session.driver.browser.respond_to?(:execute_script) &&
510
- ::Capybara.current_session.driver.browser.method(:execute_script).arity != 1
532
+ session = capybara_session
533
+ if session.driver.respond_to?(:browser) &&
534
+ session.driver.browser.respond_to?(:execute_script) &&
535
+ session.driver.browser.method(:execute_script).arity != 1
511
536
  begin
512
537
  # This is a "trick" that works with Selenium, but which might not work with other drivers...
513
538
  script = "var attrib_list = [];
@@ -519,23 +544,23 @@ for (var nIndex = 0; nIndex < attrs.length; nIndex += 1)
519
544
  };
520
545
  return attrib_list;"
521
546
 
522
- attributes = ::Capybara.current_session.driver.browser.execute_script(script, @found_element.native)
547
+ attributes = session.driver.browser.execute_script(script, @found_element.native)
523
548
  attributes.each do |attritue|
524
549
  unless PREDEFINED_ATTRIBUTES.include?(attritue)
525
550
  instance_variable_set("@native_#{attritue.gsub(/[\-]/, "_")}", @found_element[attritue])
526
551
  end
527
552
  end
528
553
 
529
- @elem_outerHTML ||= ::Capybara.current_session.driver.browser.execute_script("return arguments[0].outerHTML", @found_element.native)
554
+ @elem_outerHTML ||= session.driver.browser.execute_script("return arguments[0].outerHTML", @found_element.native)
530
555
  rescue ::Capybara::NotSupportedByDriverError
531
556
  end
532
557
  end
533
558
 
534
559
  # information from Selenium that may not be available depending on the form, the full outerHTML of the element
535
- if (::Capybara.current_session.respond_to?(:evaluate_script))
560
+ if (session.respond_to?(:evaluate_script))
536
561
  unless (@elem_id.blank?)
537
562
  begin
538
- @elem_outerHTML ||= ::Capybara.current_session.evaluate_script("document.getElementById('#{@elem_id}').outerHTML")
563
+ @elem_outerHTML ||= session.evaluate_script("document.getElementById('#{@elem_id}').outerHTML")
539
564
  rescue ::Capybara::NotSupportedByDriverError
540
565
  end
541
566
  end
@@ -1,3 +1,3 @@
1
1
  module Cornucopia
2
- VERSION = "0.1.46"
2
+ VERSION = "0.1.47"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cornucopia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.46
4
+ version: 0.1.47
5
5
  platform: ruby
6
6
  authors:
7
7
  - RealNobody
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-27 00:00:00.000000000 Z
11
+ date: 2017-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport