browza 0.0.4 → 0.0.4.1

Sign up to get free protection for your applications and to get access to all the features.
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