rudra 1.0.13 → 1.0.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rudra.rb +23 -14
  3. metadata +13 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8a3a4f9fb5eee63f5a3f29102e0c1161256fb30b098c108ca3c415663b062113
4
- data.tar.gz: 72bf75e1a6bdd4913c944944b6f0a7427082ce38fe7800202710e72a3f012e23
3
+ metadata.gz: f065383cc3c1a776dccc5708a77f627383aaa63f4198b087adad977271f713d6
4
+ data.tar.gz: 9fc4e3d993f3d3a1b4fb53d57b146df87fe8fa5e561308b726a3c8c46dd5ac1d
5
5
  SHA512:
6
- metadata.gz: 7f6a25ab7afd10bdc21c73c3c09710791a69b7ffb3d887a285a2f94b6069d83c7ab07a0d1f62b541dfd7e20935661be94491f731c9a79a9d2f035a3b8e760538
7
- data.tar.gz: adc43a16f2f13f0a59acaa41de6c790ab88f9c19caf8372b9951c79ca8428d206cf13d9f80806dc7252acc05174b81880f8f3c411447aefefbfa92d896c6216b
6
+ metadata.gz: 9f80dd1cc85e183b9ac7ac2be6831a2e1ac56be27ab884133fcbfc4b0f87e03a23d4d9443bd933cfef69292c881d968b2033d3af8cd5a72c909ba8474afcce03
7
+ data.tar.gz: ad1f215b1ea9c9f6d16e387f95f1a5f9c087845c2db3239d0f64ea719e94241805578fe1a3589b69dafc0207fcc10b6589677259ecb87939752ab0fd0d5c9a52
@@ -1,6 +1,7 @@
1
1
  require 'selenium-webdriver'
2
2
  require 'webdrivers/chromedriver'
3
3
  require 'webdrivers/geckodriver'
4
+ require 'webdrivers/iedriver'
4
5
 
5
6
  # Selenium::WebDriver::Chrome::Service.driver_path = './webdrivers/chromedriver'
6
7
  # Selenium::WebDriver::Firefox::Service.driver_path = './webdrivers/geckodriver'
@@ -16,7 +17,7 @@ require 'webdrivers/geckodriver'
16
17
  # @attr_reader [Boolean] verbose Verbose mode
17
18
  class Rudra
18
19
  # Supported Browsers
19
- BROWSERS = %i[chrome firefox safari].freeze
20
+ BROWSERS = %i[chrome firefox ie safari].freeze
20
21
 
21
22
  # Element Finder Methods
22
23
  HOWS = %i[
@@ -51,19 +52,11 @@ class Rudra
51
52
  self.headless = options.fetch(:headless, false)
52
53
  self.log_prefix = options.fetch(:log_prefix, ' - ')
53
54
  self.verbose = options.fetch(:verbose, true)
55
+ self.main_label = caller_locations(2, 1).first.label
54
56
 
55
57
  initialize_driver
56
58
 
57
59
  self.timeout = options.fetch(:timeout, 30)
58
-
59
- @main_label = caller_locations(2, 1).first.label
60
- @verbose && (
61
- puts %(
62
- ============ Rudra ============
63
- Browser: #{@browser}, Locale: #{@locale}
64
- ============ Log ============
65
- ).lines.map(&:strip).reject(&:empty?).join("\n")
66
- )
67
60
  end
68
61
 
69
62
  #
@@ -1066,9 +1059,7 @@ class Rudra
1066
1059
  end
1067
1060
 
1068
1061
  (instance_methods - superclass.instance_methods).map do |method_name|
1069
- if private_method_defined?(method_name) || ATTRIBUTES.include?(method_name)
1070
- next
1071
- end
1062
+ next if private_method_defined?(method_name) || ATTRIBUTES.include?(method_name)
1072
1063
 
1073
1064
  original_method = instance_method(method_name)
1074
1065
 
@@ -1080,6 +1071,8 @@ class Rudra
1080
1071
 
1081
1072
  private
1082
1073
 
1074
+ attr_writer :main_label
1075
+
1083
1076
  def browser=(brw)
1084
1077
  unless BROWSERS.include?(brw)
1085
1078
  browsers = BROWSERS.map { |b| ":#{b}" }.join(', ')
@@ -1129,6 +1122,8 @@ class Rudra
1129
1122
  Selenium::WebDriver.for(:chrome, options: chrome_options)
1130
1123
  elsif browser == :firefox
1131
1124
  Selenium::WebDriver.for(:firefox, options: firefox_options)
1125
+ elsif browser == :ie
1126
+ Selenium::WebDriver.for(:ie, options: ie_options)
1132
1127
  else
1133
1128
  Selenium::WebDriver.for(:safari)
1134
1129
  end
@@ -1138,6 +1133,10 @@ class Rudra
1138
1133
  options = Selenium::WebDriver::Chrome::Options.new
1139
1134
  options.add_argument('--disable-notifications')
1140
1135
  options.add_argument('--headless') if headless
1136
+ options.add_option(
1137
+ 'excludeSwitches',
1138
+ %w[enable-automation enable-logging]
1139
+ )
1141
1140
  options.add_preference('intl.accept_languages', locale)
1142
1141
  options
1143
1142
  end
@@ -1149,6 +1148,16 @@ class Rudra
1149
1148
  options
1150
1149
  end
1151
1150
 
1151
+ def ie_options
1152
+ options = Selenium::WebDriver::IE::Options.new
1153
+ options.ensure_clean_session = true
1154
+ options.full_page_screenshot = true
1155
+ options.ignore_protected_mode_settings = true
1156
+ options.ignore_zoom_level = true
1157
+ options.native_events = false
1158
+ options
1159
+ end
1160
+
1152
1161
  def parse_locator(locator)
1153
1162
  unmatched, how, what = locator.split(/^([A-Za-z]+)=(.+)/)
1154
1163
 
@@ -1170,7 +1179,7 @@ class Rudra
1170
1179
  end
1171
1180
 
1172
1181
  def log(method_name, *args)
1173
- return unless @verbose && caller_locations(2, 1).first.label == @main_label
1182
+ return unless @verbose && caller_locations(2, 1).first.label == main_label
1174
1183
 
1175
1184
  arguments = args.map(&:to_s).join(', ')
1176
1185
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rudra
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.13
4
+ version: 1.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Chen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-23 00:00:00.000000000 Z
11
+ date: 2020-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yard
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.9.24
19
+ version: 0.9.25
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.9.24
26
+ version: 0.9.25
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: selenium-webdriver
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -48,24 +48,24 @@ dependencies:
48
48
  name: webdrivers
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: 4.3.0
54
51
  - - "~>"
55
52
  - !ruby/object:Gem::Version
56
- version: '4.3'
53
+ version: '4.4'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 4.4.1
57
57
  type: :runtime
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- version: 4.3.0
64
61
  - - "~>"
65
62
  - !ruby/object:Gem::Version
66
- version: '4.3'
63
+ version: '4.4'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 4.4.1
67
67
  description: Selenium IDE alternative using selenium-webdriver
68
- email: aaron@oobo.be
68
+ email: aaron@611b.com
69
69
  executables: []
70
70
  extensions: []
71
71
  extra_rdoc_files: []