browza 0.0.4 → 0.0.4.1

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: cc4756e03d74208e056664cb495cbe9caf4ca25b
4
- data.tar.gz: e7f638d1e4645105d9aed6ffc9a0e1f534669919
3
+ metadata.gz: b2b18c180cdb6ad2b3808f22a7b8b61c92c5daed
4
+ data.tar.gz: dd58e4eeb7a809d848142ae368e9fd3dfa042f35
5
5
  SHA512:
6
- metadata.gz: b0cf80c06efe95366ece1893d3190e6c4fca6983539a7d6a9f14c0becf1adba00246de4874d12a1b78a19e1794bb1a8b61f17f81c3172f9b701f0527e1689055
7
- data.tar.gz: 401f348eefc34a1e406eca566e7f34773b5c2dd7ec06085fe5e5ed94a3fbd53ef9cd1d6560f1a45524b0542c1ffd0530bfe13a1db40bd07108bf483a152ff98e
6
+ metadata.gz: 1f8fbbf83d3df9c6f04b6ad2410497ec18a2e7e2feb67b69eb462690f33fdbd55c8c4872859a33db08662e1eca6f2a480eeffdbf92092f81535ebdd6ed7f0d9d
7
+ data.tar.gz: e010c384dc964bb0f7568752299e77f8e94bf67dab343f6ee7dd19e85e8fb5e4d674099431889ae1023a2347743e2ad3b8ee743057fb71a942496bb0715909be
data/README.md CHANGED
@@ -36,6 +36,8 @@ gem install browza
36
36
  * 52.0 (for Chrome/Firefox)
37
37
  * etc
38
38
  1. SELENIUM_RESOLUTION=[widthxheight]
39
+ 1. SELENIUM_PROXY=[ proxy ]
40
+ * This is optional depending on your network
39
41
 
40
42
 
41
43
  ### displayed?(<locator>)
@@ -1,12 +1,49 @@
1
1
 
2
2
  require 'selenium-webdriver'
3
3
 
4
+ def chromeProxy
5
+ proxy='127.0.0.1:8080'
6
+ # caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => [ "--disable-web-security" ]})
7
+ caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => ["--proxy-server=#{proxy}"]})
8
+ driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
9
+ end
4
10
 
5
- profile = Selenium::WebDriver::Firefox::Profile.new
6
- proxy = Selenium::WebDriver::Proxy.new(http: "127.0.0.:8080")
7
- profile.proxy = proxy
8
- options = Selenium::WebDriver::Firefox::Options.new(profile: profile)
9
- driver = Selenium::WebDriver.for :firefox, options: options
10
11
 
11
12
 
12
13
 
14
+ def firefoxProxy
15
+ profile = Selenium::WebDriver::Firefox::Profile.new
16
+ proxy = Selenium::WebDriver::Proxy.new(http: "127.0.0.1:8080")
17
+ profile.proxy = proxy
18
+
19
+ puts "Proxy => #{profile.methods.sort}"
20
+
21
+ proxySSL = Selenium::WebDriver::Proxy.new(http: "127.0.0.1:8080", ssl: "127.0.0.1:8080")
22
+ profile.proxy = proxySSL
23
+
24
+ options = Selenium::WebDriver::Firefox::Options.new(profile: profile)
25
+ driver = Selenium::WebDriver.for :firefox, options: options
26
+ driver.navigate.to 'https://msprqa3.concurtech.net'
27
+ end
28
+
29
+
30
+
31
+ def ff
32
+ caps = Selenium::WebDriver::Remote::Capabilities.firefox(proxy: Selenium::WebDriver::Proxy.new(http: "127.0.0.1:8080"))
33
+ # driver = Selenium::WebDriver.for :remote, desired_capabilities: caps
34
+
35
+ driver = Selenium::WebDriver.for :firefox, :desired_capabilities => caps
36
+ end
37
+
38
+ driver=ff()
39
+ #driver=chromeProxy()
40
+
41
+ begin
42
+ driver.navigate.to 'https://msprqa3.concurtech.net'
43
+ rescue => ex
44
+ ;
45
+ end
46
+
47
+ STDIN.gets
48
+ driver.close()
49
+ driver.quit()
@@ -3,6 +3,7 @@ require 'singleton'
3
3
  require 'appmodel'
4
4
  require 'logging'
5
5
  require 'sauce_whisk'
6
+ require 'eyes_selenium'
6
7
 
7
8
  module Browza
8
9
 
@@ -18,6 +19,8 @@ class Manager
18
19
  attr_accessor :driverList
19
20
  attr_accessor :browserMgr
20
21
  attr_accessor :debug
22
+ attr_accessor :eyes
23
+ attr_accessor :eyesOptions
21
24
 
22
25
  def initialize(_logLevel = :warn)
23
26
  @debug = false
@@ -28,10 +31,24 @@ class Manager
28
31
  @appModels=[]
29
32
  @defaultRetries = 2
30
33
  @browserMgr = Browza::BrowzaMgr.new()
34
+ @eyes = nil
35
+ @eyesOptions = { :appName => ENV['EYES_APPNAME'], :testName => ENV['EYES_TESTNAME'] }
36
+ end
37
+
38
+ def setAppName(s)
39
+ @eyesOptions[:appName] = s
40
+ end
41
+
42
+ def setTestName(s)
43
+ @eyesOptions[:testName] = s
31
44
  end
32
45
 
33
46
  def setDebug(b)
34
47
  @debug = b
48
+
49
+ if b
50
+ @logger.level = :debug
51
+ end
35
52
  end
36
53
 
37
54
  def _addDriver(d)
@@ -186,7 +203,7 @@ class Manager
186
203
  i=0
187
204
  @driverList.each do |b|
188
205
  target_size = Selenium::WebDriver::Dimension.new(width.to_i, height.to_i)
189
- if b[:drv] && (b[:drv].is_a?(Selenium::WebDriver) || b[:drv].is_a?(Selenium::WebDriver::Driver))
206
+ if b[:drv] && (b[:drv].is_a?(Selenium::WebDriver) || b[:drv].is_a?(Selenium::WebDriver::Driver) || b.has_key?(:id))
190
207
  b[:drv].manage.window.size = target_size
191
208
  else
192
209
  @logger.warn __FILE__ + (__LINE__).to_s + " Attempt to access driver failed. (#{b})"
@@ -250,6 +267,19 @@ class Manager
250
267
 
251
268
  timeout = nil
252
269
 
270
+ if ENV['SELENIUM_EYES']
271
+ @logger.debug __FILE__ + (__LINE__).to_s + " Enable EYES"
272
+ @eyes = Applitools::Selenium::Eyes.new()
273
+ @eyes.api_key = ENV['APPLITOOLS_API_KEY']
274
+ @eyes.force_full_page_screenshot = true
275
+ @eyes.stitch_mode = :css
276
+ @eyes.match_level = :strict
277
+ @eyes.match_timeout = 8
278
+ batch = Applitools::BatchInfo.new('DEMO_COREUI_HIGX')
279
+ batch.id = 'DEC17'
280
+ @eyes.batch = batch
281
+ end
282
+
253
283
  if ENV['SELENIUM_RESOLUTION']
254
284
  @logger.debug " SELENIUM_RESOLUTION=#{ENV['SELENIUM_RESOLUTION']}" if @debug
255
285
  _width = ENV['SELENIUM_RESOLUTION'].match(/\s*(\d+)\s*x\s*(\d+)\s*$/)[1].to_s
@@ -335,7 +365,24 @@ class Manager
335
365
 
336
366
  begin
337
367
  if timeout.nil? && ENV['SELENIUM_PROXY'].nil?
338
- @drv = Selenium::WebDriver.for @browserType
368
+
369
+ if @eyes.nil?
370
+ @drv = Selenium::WebDriver.for @browserType
371
+ else
372
+ @logger.debug __FILE__ + (__LINE__).to_s + " Create eyes: widthxheight: #{_width} by #{_height}"
373
+ _driver = Selenium::WebDriver.for @browserType
374
+
375
+ if @eyes
376
+ @drv = @eyes.open(
377
+ app_name: @eyesOptions[:appName],
378
+ test_name: @eyesOptions[:testName],
379
+ viewport_size: {width: _width.to_i, height: _height.to_i},
380
+ driver: _driver
381
+ )
382
+ end
383
+
384
+ end
385
+
339
386
  else
340
387
 
341
388
  if ENV['SELENIUM_PROXY']
@@ -344,16 +391,38 @@ class Manager
344
391
  @logger.debug "createBrowser() with proxy: #{ENV['SELENIUM_PROXY']}"
345
392
 
346
393
  profile = Selenium::WebDriver::Firefox::Profile.new
394
+
395
+ # Selenium::WebDriver::Proxy.new(http: "127.0.0.1:8080")
347
396
  proxy = Selenium::WebDriver::Proxy.new(http: "#{ENV['SELENIUM_PROXY']}")
348
- profile.proxy = proxy
349
- options = Selenium::WebDriver::Firefox::Options.new(profile: profile)
350
- @drv = Selenium::WebDriver.for :firefox, options: options
397
+ # profile.proxy = proxy
398
+ # options = Selenium::WebDriver::Firefox::Options.new(profile: profile)
399
+
400
+ caps = Selenium::WebDriver::Remote::Capabilities.firefox(proxy: proxy)
401
+
402
+
403
+ # @drv = Selenium::WebDriver.for :firefox, options: options
404
+
405
+ @drv = Selenium::WebDriver.for :firefox, :desired_capabilities => caps
351
406
  end
352
407
 
353
408
  elsif
354
409
  client = Selenium::WebDriver::Remote::Http::Default.new
355
410
  client.read_timeout = timeout.to_i
356
- @drv = Selenium::WebDriver.for @browserType, http_client: client
411
+
412
+ if @eyes.nil?
413
+ @drv = Selenium::WebDriver.for @browserType, http_client: client
414
+ else
415
+
416
+ @logger.debug __FILE__ + (__LINE__).to_s + " Create eyes"; STDIN.gets
417
+ _driver = Selenium::WebDriver.for @browserType, http_client: client
418
+ @drv = @eyes.open(
419
+ app_name: @eyesOptions[:appName],
420
+ test_name: @eyesOptions[:testName],
421
+ viewport_size: {width: _width, height: _height},
422
+ driver: _driver
423
+ )
424
+ end
425
+
357
426
  end
358
427
 
359
428
  puts __FILE__ + (__LINE__).to_s + " Set NET::TIMEOUT to #{timeout.to_s}"
@@ -406,6 +475,11 @@ class Manager
406
475
 
407
476
  def quit(id=nil)
408
477
 
478
+ if @eyes
479
+ eyesResults = @eyes.close(false)
480
+ puts __FILE__ + (__LINE__).to_s + " Eyes => #{eyesResults.to_s}"
481
+ end
482
+
409
483
  if id.nil?
410
484
  @browserMgr.getBrowsers().each do |b|
411
485
 
@@ -1537,6 +1611,17 @@ class Manager
1537
1611
  end
1538
1612
 
1539
1613
 
1614
+
1615
+ def checkWindow(tag, region = nil)
1616
+ if @eyes
1617
+ @eyes.force_full_page_screenshot = true
1618
+ @eyes.stitch_mode = :css
1619
+ @eyes.match_level = :strict
1620
+ @eyes.check_window(tag.to_s)
1621
+ end
1622
+
1623
+ end
1624
+
1540
1625
  end
1541
1626
 
1542
1627
 
@@ -1,3 +1,3 @@
1
1
  module Browza
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.4.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browza
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - H20Dragon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-25 00:00:00.000000000 Z
11
+ date: 2018-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler