itamae-plugin-recipe-selenium 0.4.1 → 0.4.3

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
  SHA256:
3
- metadata.gz: f2fcba6f9966b7893280599d6af138dc5a52924ddf4646d5d4203204bfe5a973
4
- data.tar.gz: 0e5a6a445fd3bbf28ce9725fec1c49d670f9e109019a06310f228081d14acc31
3
+ metadata.gz: c09754552df248ca7a5ae610ad75319bcde6ca1c669d52234ebd466d79e2ac55
4
+ data.tar.gz: 98b9ce4b0d3a9cf33f7d84346ece31095f8d0fde8e8f0e2e2e97fc6cb4197909
5
5
  SHA512:
6
- metadata.gz: 603fa2d004338f3fc2bde161b883e0554207f5c5119f5fb92473876d0b52cf5cf695a40d36c6aef60bf505e7ade7ba54fc698342e3d3b4001fea995dd29efcb6
7
- data.tar.gz: 1447374780be2bb017da90df3a8ca89ae95a17ee28edfacdc22374b595e2c3de31f5c92f8d22edddf80b989d00d21d7f45a44dec632e6d366c8056c4e7602b86
6
+ metadata.gz: eb05ad92669d9e2e7681687d47489d0abbeec37f389bca1e4bbb9d84b746b9535d2eeb7671c3fffcca2bffaba6bc80e92e7fed24c8ef66d88ed9d2f1b6bb4392
7
+ data.tar.gz: 9aaef2f6bf0445b2b7dfff4c7488eef1bc1ec8fd2153b46c062963f3fde46df885040128f67433d7e29ca767b1a7f09337a8ebc3e6980f072311e8a0d6c47ccd
@@ -7,11 +7,11 @@ template '/etc/yum.repos.d/google-chrome.repo' do
7
7
  end
8
8
 
9
9
  if ENV['CHROME_VERSION'].to_s.empty?
10
- ENV['CHROME_VERSION'] = '114.0.5735.90'
10
+ ENV['CHROME_VERSION'] = '117.0.5938.92'
11
11
 
12
12
  execute "yum install -y https://dl.google.com/linux/chrome/rpm/stable/x86_64/google-chrome-stable-#{ENV['CHROME_VERSION']}-1.x86_64.rpm" do
13
13
  user 'root'
14
- not_if "which google-chrome-stable && google-chrome-stable --version | egrep 'Google Chrome (110|111|112|113|114)\.'"
14
+ not_if "which google-chrome-stable && google-chrome-stable --version | egrep 'Google Chrome (115|116|117)\.'"
15
15
  end
16
16
  else
17
17
  execute "yum install -y https://dl.google.com/linux/chrome/rpm/stable/x86_64/google-chrome-stable-#{ENV['CHROME_VERSION']}-1.x86_64.rpm" do
@@ -2,7 +2,7 @@ module Itamae
2
2
  module Plugin
3
3
  module Recipe
4
4
  module Selenium
5
- VERSION = '0.4.1'
5
+ VERSION = '0.4.3'
6
6
  end
7
7
  end
8
8
  end
@@ -1,4 +1,6 @@
1
- require 'net/http'
1
+ require 'json'
2
+ require 'net/https'
3
+ require 'uri'
2
4
 
3
5
  module Itamae
4
6
  module Plugin
@@ -32,41 +34,35 @@ module Itamae
32
34
  private
33
35
 
34
36
  def run_setup_chromedriver
35
- host = 'chromedriver.storage.googleapis.com'
36
- base_url = 'https://' + host
37
37
  browser_version = run_command('sudo yum list | grep google-chrome-stable').stdout.split[1]
38
38
  browser_version = Gem::Version.new(browser_version.to_s).segments[0..2].join('.')
39
-
40
- driver_version_url = base_url + "/LATEST_RELEASE_#{browser_version}"
41
- driver_version = Net::HTTP.get_response(URI(driver_version_url)).body
42
-
43
- # see https://stackoverflow.com/questions/70967207/selenium-chromedriver-cannot-construct-keyevent-from-non-typeable-key/70968668
44
- driver_version = '97.0.4692.71' if driver_version.start_with?('98.')
45
-
46
- download_url = base_url + "/#{driver_version}/chromedriver_linux64.zip"
47
- header = Net::HTTP.start(host) { |http| http.head("/#{driver_version}/chromedriver_linux64.zip") }
48
- etag = header['etag'][1...-1]
49
-
50
39
  Itamae.logger.info "browser version: #{browser_version}"
40
+
41
+ driver_version_url = 'https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json'
42
+ driver_versions = JSON.parse(Net::HTTP.get_response(URI(driver_version_url)).body)
43
+ driver_version_info = driver_versions['versions'].select{|hash| hash['version'].start_with?(browser_version) }.sort{|a, b| a['revision'] <=> b['revision'] }.last
44
+ driver_version = driver_version_info['version']
51
45
  Itamae.logger.info "driver version: #{driver_version}"
52
- Itamae.logger.debug "download url: #{download_url}"
53
- Itamae.logger.debug "etag: #{etag}"
46
+
47
+ driver_download_url = driver_version_info['downloads']['chromedriver'].find{|hash| hash['platform'] == 'linux64' }&.[]('url')
48
+ Itamae.logger.info "driver download url: #{driver_download_url}"
54
49
 
55
50
  run_command_if_not(
56
51
  'download chromedriver',
57
- "echo '#{etag} chromedriver_linux64-#{driver_version}.zip' | md5sum -c -",
52
+ "#{attributes.install_dir}chromedriver -v | grep 'ChromeDriver #{driver_version} '",
58
53
  <<-COMMANDS
59
- rm -Rf chromedriver_linux64-#{driver_version}*
60
- curl -o chromedriver_linux64-#{driver_version}.zip #{download_url}
54
+ rm -f chromedriver-linux64.zip
55
+ curl -o chromedriver-linux64.zip #{driver_download_url}
61
56
  COMMANDS
62
57
  )
63
58
 
64
59
  run_command_if_not(
65
60
  'install chromedriver',
66
- "#{attributes.install_dir}chromedriver -v | grep 'ChromeDriver #{driver_version}'",
61
+ "#{attributes.install_dir}chromedriver -v | grep 'ChromeDriver #{driver_version} '",
67
62
  <<-COMMANDS
68
- unzip chromedriver_linux64-#{driver_version}.zip
69
- sudo mv -f chromedriver #{attributes.install_dir}
63
+ rm -Rf chromedriver-linux64/
64
+ unzip chromedriver-linux64.zip
65
+ sudo mv -f chromedriver-linux64/chromedriver #{attributes.install_dir}
70
66
  COMMANDS
71
67
  )
72
68
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itamae-plugin-recipe-selenium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - y-matsuda
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-20 00:00:00.000000000 Z
11
+ date: 2023-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: itamae