Automated JavaScript Testing APIs support the automation of Chrome Flags on your Google Chrome browser.
Overview
Chrome Flags are potential functionalities that you can enable, disable, or set as default to control the browser services and behavior. You can check all Chrome Flags using the chrome://flags/ URL on your Google Chrome browser.
Run test using Chrome Flags
Pass Chrome Flags in karma_conf.js to use Flags in your tests.
flags: ["--enable-features=WebContentsForceDark"]For example:
customLaunchers: { bs_chrome_win1: { base: 'BrowserStack', browser: 'chrome', browser_version: 'latest', os: 'Windows', os_version: '11', flags: ["--enable-features=WebContentsForceDark"] },},Following code snippet is a test script that enables dark mode using a Chrome Flag.
require 'rubygems'require 'json'require 'net/http'require 'uri'require 'pp'require 'net/http'require 'openssl'# require 'openssl'OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE# localuser = 'YOUR_USERNAME'key = 'YOUR_ACCESS_KEY'base_url = 'apidev.bsstag.com'uri= URI.parse("https://#{base_url}/5")http = Net::HTTP.new(uri.host, uri.port)http.verify_mode = OpenSSL::SSL::VERIFY_NONEhttp.use_ssl = true # if uri.scheme == 'https'puts "Creating worker #{uri.port}"#Create a workeruri=URI.parse("https://#{base_url}/5/worker")request=Net::HTTP::Post.new(uri.request_uri)request.initialize_http_header({"Content-Type" => "application/json", "Accept" => "application/json"})request.basic_auth("#{user}","#{key}")flags = ["--enable-features=WebContentsForceDark"]request.body = { "flags" => flags, "os" => "android", "os_version" => "11.0", "device" => "Samsung Galaxy S21 Ultra" , "url" => "", "realMobile" => "true", "build" => "JS mobile" }.to_jsonbegin response=http.request(request) url = response['location']end while response.is_a?(Net::HTTPRedirection)puts "RESPONSE: #{response.body}"jobId= JSON.parse(response.body)["id"]puts "https://#{base_url}/5/worker/#{jobId}"#Get job statusuri=URI.parse("https://#{base_url}/5/worker/#{jobId}")request=Net::HTTP::Get.new(uri.request_uri)request.basic_auth("#{user}","#{key}")response=http.request(request)status = JSON.parse(response.body)["status"]puts statuswhile status!="running"response = http.request(request)status = JSON.parse(response.body)["status"]puts statussleep 1end#Get API Statusuri=URI.parse("https://#{base_url}/5/worker/#{jobId}/screenshot.json")request=Net::HTTP::Get.new(uri.request_uri)request.basic_auth("#{user}","#{key}")response=http.request(request)puts response.bodysleep(5)response=http.request(request)puts response.bodysleep(5)response=http.request(request)puts response.each_header.to_hsleep(3)# puts driver.title()uri=URI.parse("https://#{base_url}/5/workers")request=Net::HTTP::Get.new(uri.request_uri)request.basic_auth("#{user}","#{key}")response=http.request(request)puts response.body# Delete workerputs "/n/nDelete worker/n/n" uri=URI.parse("https://#{base_url}/5/worker/#{jobId}") request=Net::HTTP::Delete.new(uri.request_uri) request.basic_auth("#{user}","#{key}") response=http.request(request) puts response.body puts "/n/n Worker Deleted /n/n"#status of API after deleteuri=URI.parse("https://#{base_url}/5/status")request=Net::HTTP::Get.new(uri.request_uri)request.basic_auth("#{user}","#{key}")response=http.request(request)puts response.body Did this page help you?
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.
We're continuously improving our docs. We'd love to know what you liked
Thank you for your valuable feedback
Is this page helping you?
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.
We're continuously improving our docs. We'd love to know what you liked
Thank you for your valuable feedback!