Skip to content

Commit f9513b2

Browse files
author
Winter
authored
Merge pull request code-dot-org#26944 from code-dot-org/headless-local-chrome
Make runner.rb use headless chrome by default in local mode
2 parents 269a876 + a767727 commit f9513b2

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

dashboard/test/ui/features/support/connect.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,9 @@ def saucelabs_browser(test_run_name)
8787

8888
def get_browser(test_run_name)
8989
if ENV['TEST_LOCAL'] == 'true'
90+
headless = ENV['TEST_LOCAL_HEADLESS'] == 'true'
9091
# This drives a local installation of ChromeDriver running on port 9515, instead of Saucelabs.
91-
SeleniumBrowser.local_browser
92+
SeleniumBrowser.local_browser(headless)
9293
else
9394
saucelabs_browser test_run_name
9495
end

dashboard/test/ui/runner.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ def parse_options
101101
options.csedweek_domain = 'test.csedweek.org'
102102
options.advocacy_domain = 'test-advocacy.code.org'
103103
options.local = nil
104+
options.local_headless = true
104105
options.html = nil
105106
options.maximize = nil
106107
options.auto_retry = false
@@ -140,6 +141,9 @@ def parse_options
140141
options.csedweek_domain = 'localhost.csedweek.org:3000'
141142
options.advocacy_domain = 'localhost-advocacy.code.org:3000'
142143
end
144+
opts.on("--headed", "Open visible chrome browser windows. Runs in headless mode without this flag. Only relevant when -l is specified.") do
145+
options.local_headless = false
146+
end
143147
opts.on("-p", "--pegasus Domain", String, "Specify an override domain for code.org, e.g. localhost.code.org:3000") do |p|
144148
if p == 'localhost:3000'
145149
print "WARNING: Some tests may fail using '-p localhost:3000' because cookies will not be available.\n"\
@@ -673,6 +677,7 @@ def run_feature(browser, feature, options)
673677
run_environment['CSEDWEEK_TEST_DOMAIN'] = options.csedweek_domain if options.csedweek_domain
674678
run_environment['ADVOCACY_TEST_DOMAIN'] = options.advocacy_domain if options.advocacy_domain
675679
run_environment['TEST_LOCAL'] = options.local ? "true" : "false"
680+
run_environment['TEST_LOCAL_HEADLESS'] = options.local_headless ? "true" : "false"
676681
run_environment['MAXIMIZE_LOCAL'] = options.maximize ? "true" : "false"
677682
run_environment['MOBILE'] = browser['mobile'] ? "true" : "false"
678683
run_environment['FAIL_FAST'] = options.fail_fast ? "true" : nil

dashboard/test/ui/utils/selenium_browser.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
require 'selenium/webdriver'
22

33
module SeleniumBrowser
4-
def self.local_browser
4+
def self.local_browser(headless=true)
55
ensure_chromedriver_running
66
sleep 2
7-
browser = Selenium::WebDriver.for :chrome, url: 'http://127.0.0.1:9515'
7+
options = Selenium::WebDriver::Chrome::Options.new
8+
if headless
9+
options.add_argument('--headless')
10+
end
11+
browser = Selenium::WebDriver.for :chrome, url: 'http://127.0.0.1:9515', options: options
812
if ENV['MAXIMIZE_LOCAL']
913
max_width, max_height = browser.execute_script('return [window.screen.availWidth, window.screen.availHeight];')
1014
browser.manage.window.resize_to(max_width, max_height)

0 commit comments

Comments
 (0)