How to use bazel method of Rake.DSL Package

Best Selenium code snippet using Rake.DSL.bazel

Rakefile

Source: Rakefile Github

copy

Full Screen

...28# Our modifications to the Rake /​ Bazel libraries29require 'rake/​task'30require 'rake_tasks/​rake/​task'31require 'rake_tasks/​rake/​dsl'32require 'rake_tasks/​bazel/​task'33# These are the final items mixed into the global NS34# These need moving into correct namespaces, and not be globally included35require 'rake_tasks/​bazel'36require 'rake_tasks/​copyright'37require 'rake_tasks/​python'38$DEBUG = orig_verbose != Rake::FileUtilsExt::DEFAULT ? true : false39$DEBUG = true if ENV['debug'] == 'true'40verbose($DEBUG)41def release_version42 '4.1'43end44def version45 "#{release_version}.1"46end47# The build system used by webdriver is layered on top of rake, and we call it48# "crazy fun" for no readily apparent reason.49# First off, create a new CrazyFun object.50crazy_fun = SeleniumRake::CrazyFun.new51# Secondly, we add the handlers, which are responsible for turning a build52# rule into a (series of) rake tasks. For example if we're looking at a file53# in subdirectory "subdir" contains the line:54#55# java_library(:name => "example", :srcs => ["foo.java"])56#57# we would generate a rake target of "/​/​subdir:example" which would generate58# a Java JAR at "build/​subdir/​example.jar".59#60# If crazy fun doesn't know how to handle a particular output type ("java_library"61# in the example above) then it will throw an exception, stopping the build62CrazyFun::Mappings::RakeMappings.new.add_all(crazy_fun)63# Finally, find every file named "build.desc" in the project, and generate64# rake tasks from them. These tasks are normal rake tasks, and can be invoked65# from rake.66# FIXME: the rules for the targets were removed and build files won't load67# crazy_fun.create_tasks(Dir['**/​build.desc'])68#  If it looks like a bazel target, build it with bazel69rule /​\/​\/​.*/​ do |task|70 task.out = Bazel.execute('build', %w[--workspace_status_command scripts/​build-info.py], task.name)71end72# Spoof tasks to get CI working with bazel73task '/​/​java/​test/​org/​openqa/​selenium/​environment/​webserver:webserver:uber' => [74 '/​/​java/​test/​org/​openqa/​selenium/​environment:webserver'75]76# Java targets required for release. These should all be java_export targets.77# Generated from: bazel query 'kind(maven_publish, set(/​/​java/​... /​/​third_party/​...))' | sort78JAVA_RELEASE_TARGETS = %w[79 /​/​java/​src/​com/​thoughtworks/​selenium/​webdriven:webdriven.publish80 /​/​java/​src/​org/​openqa/​selenium/​chrome:chrome.publish81 /​/​java/​src/​org/​openqa/​selenium/​chromium:chromium.publish82 /​/​java/​src/​org/​openqa/​selenium/​devtools/​v85:v85.publish83 /​/​java/​src/​org/​openqa/​selenium/​devtools/​v95:v95.publish84 /​/​java/​src/​org/​openqa/​selenium/​devtools/​v96:v96.publish85 /​/​java/​src/​org/​openqa/​selenium/​devtools/​v97:v97.publish86 /​/​java/​src/​org/​openqa/​selenium/​edge:edge.publish87 /​/​java/​src/​org/​openqa/​selenium/​firefox/​xpi:xpi.publish88 /​/​java/​src/​org/​openqa/​selenium/​firefox:firefox.publish89 /​/​java/​src/​org/​openqa/​selenium/​grid/​sessionmap/​jdbc:jdbc.publish90 /​/​java/​src/​org/​openqa/​selenium/​grid/​sessionmap/​redis:redis.publish91 /​/​java/​src/​org/​openqa/​selenium/​grid:grid.publish92 /​/​java/​src/​org/​openqa/​selenium/​ie:ie.publish93 /​/​java/​src/​org/​openqa/​selenium/​json:json.publish94 /​/​java/​src/​org/​openqa/​selenium/​lift:lift.publish95 /​/​java/​src/​org/​openqa/​selenium/​opera:opera.publish96 /​/​java/​src/​org/​openqa/​selenium/​remote/​http:http.publish97 /​/​java/​src/​org/​openqa/​selenium/​remote:remote.publish98 /​/​java/​src/​org/​openqa/​selenium/​safari:safari.publish99 /​/​java/​src/​org/​openqa/​selenium/​support:support.publish100 /​/​java/​src/​org/​openqa/​selenium:client-combined.publish101 /​/​java/​src/​org/​openqa/​selenium:core.publish102]103# Notice that because we're using rake, anything you can do in a normal rake104# build can also be done here. For example, here we set the default task105task default: [:grid]106task all: [107 :"selenium-java",108 '/​/​java/​test/​org/​openqa/​selenium/​environment:webserver'109]110task all_zip: [:'prep-release-zip']111task tests: [112 '/​/​java/​test/​org/​openqa/​selenium/​htmlunit:htmlunit',113 '/​/​java/​test/​org/​openqa/​selenium/​firefox:test-synthesized',114 '/​/​java/​test/​org/​openqa/​selenium/​ie:ie',115 '/​/​java/​test/​org/​openqa/​selenium/​chrome:chrome',116 '/​/​java/​test/​org/​openqa/​selenium/​edge:edge',117 '/​/​java/​test/​org/​openqa/​selenium/​opera:opera',118 '/​/​java/​test/​org/​openqa/​selenium/​support:small-tests',119 '/​/​java/​test/​org/​openqa/​selenium/​support:large-tests',120 '/​/​java/​test/​org/​openqa/​selenium/​remote:small-tests',121 '/​/​java/​test/​org/​openqa/​selenium/​remote/​server/​log:test',122 '/​/​java/​test/​org/​openqa/​selenium/​remote/​server:small-tests'123]124task chrome: ['/​/​java/​src/​org/​openqa/​selenium/​chrome']125task grid: [:'selenium-server-standalone']126task ie: ['/​/​java/​src/​org/​openqa/​selenium/​ie']127task firefox: ['/​/​java/​src/​org/​openqa/​selenium/​firefox']128task remote: %i[remote_server remote_client]129task remote_client: ['/​/​java/​src/​org/​openqa/​selenium/​remote']130task remote_server: ['/​/​java/​src/​org/​openqa/​selenium/​remote/​server']131task safari: ['/​/​java/​src/​org/​openqa/​selenium/​safari']132task selenium: ['/​/​java/​src/​org/​openqa/​selenium:core']133task support: [134 '/​/​java/​src/​org/​openqa/​selenium/​lift',135 '/​/​java/​src/​org/​openqa/​selenium/​support'136]137desc 'Build the standalone server'138task 'selenium-server-standalone' => '/​/​java/​src/​org/​openqa/​selenium/​grid:executable-grid'139task test_javascript: [140 '/​/​javascript/​atoms:test-chrome:run',141 '/​/​javascript/​webdriver:test-chrome:run',142 '/​/​javascript/​selenium-atoms:test-chrome:run',143 '/​/​javascript/​selenium-core:test-chrome:run'144]145task test_chrome: ['/​/​java/​test/​org/​openqa/​selenium/​chrome:chrome:run']146task test_edge: ['/​/​java/​test/​org/​openqa/​selenium/​edge:edge:run']147task test_chrome_atoms: [148 '/​/​javascript/​atoms:test-chrome:run',149 '/​/​javascript/​chrome-driver:test-chrome:run',150 '/​/​javascript/​webdriver:test-chrome:run'151]152task test_htmlunit: [153 '/​/​java/​test/​org/​openqa/​selenium/​htmlunit:htmlunit:run'154]155task test_grid: [156 '/​/​java/​test/​org/​openqa/​grid/​common:common:run',157 '/​/​java/​test/​org/​openqa/​grid:grid:run',158 '/​/​java/​test/​org/​openqa/​grid/​e2e:e2e:run',159 '/​/​java/​test/​org/​openqa/​selenium/​remote:remote-driver-grid-tests:run'160]161task test_ie: [162 '/​/​cpp/​iedriverserver:win32',163 '/​/​cpp/​iedriverserver:x64',164 '/​/​java/​test/​org/​openqa/​selenium/​ie:ie:run'165]166task test_jobbie: [:test_ie]167task test_firefox: ['/​/​java/​test/​org/​openqa/​selenium/​firefox:marionette:run']168task test_opera: ['/​/​java/​test/​org/​openqa/​selenium/​opera:opera:run']169task test_remote_server: [170 '/​/​java/​test/​org/​openqa/​selenium/​remote/​server:small-tests:run',171 '/​/​java/​test/​org/​openqa/​selenium/​remote/​server/​log:test:run'172]173task test_remote: [174 '/​/​java/​test/​org/​openqa/​selenium/​json:small-tests:run',175 '/​/​java/​test/​org/​openqa/​selenium/​remote:common-tests:run',176 '/​/​java/​test/​org/​openqa/​selenium/​remote:client-tests:run',177 '/​/​java/​test/​org/​openqa/​selenium/​remote:remote-driver-tests:run',178 :test_remote_server179]180task test_safari: ['/​/​java/​test/​org/​openqa/​selenium/​safari:safari:run']181task test_support: [182 '/​/​java/​test/​org/​openqa/​selenium/​lift:lift:run',183 '/​/​java/​test/​org/​openqa/​selenium/​support:small-tests:run',184 '/​/​java/​test/​org/​openqa/​selenium/​support:large-tests:run'185]186# TODO(simon): test-core should go first, but it's changing the least for now.187task test_selenium: [:'test-rc']188task 'test-rc': ['/​/​java/​test/​com/​thoughtworks/​selenium:firefox-rc-test:run']189task 'test-rc': ['/​/​java/​test/​com/​thoughtworks/​selenium:ie-rc-test:run'] if SeleniumRake::Checks.windows?190task test_java_webdriver: %i[191 test_htmlunit192 test_firefox193 test_remote_server194]195task test_java_webdriver: [:test_ie] if SeleniumRake::Checks.windows?196task test_java_webdriver: [:test_chrome] if SeleniumRake::Checks.chrome?197task test_java_webdriver: [:test_edge] if SeleniumRake::Checks.edge?198task test_java_webdriver: [:test_opera] if SeleniumRake::Checks.opera?199task test_java: [200 '/​/​java/​test/​org/​openqa/​selenium/​atoms:test:run',201 :test_java_small_tests,202 :test_support,203 :test_java_webdriver,204 :test_selenium,205 'test_grid'206]207task test_java_small_tests: [208 '/​/​java/​test/​org/​openqa/​selenium:small-tests:run',209 '/​/​java/​test/​org/​openqa/​selenium/​json:small-tests:run',210 '/​/​java/​test/​org/​openqa/​selenium/​support:small-tests:run',211 '/​/​java/​test/​org/​openqa/​selenium/​remote:common-tests:run',212 '/​/​java/​test/​org/​openqa/​selenium/​remote:client-tests:run',213 '/​/​java/​test/​org/​openqa/​grid/​selenium/​node:node:run',214 '/​/​java/​test/​org/​openqa/​grid/​selenium/​proxy:proxy:run',215 '/​/​java/​test/​org/​openqa/​selenium/​remote/​server:small-tests:run',216 '/​/​java/​test/​org/​openqa/​selenium/​remote/​server/​log:test:run'217]218task test_rb: ['/​/​rb:unit-test', :test_rb_local, :test_rb_remote]219task test_rb_local: [220 '/​/​rb:chrome-test',221 '/​/​rb:firefox-test',222 ('/​/​rb:firefox-nightly-test' if ENV['FIREFOX_NIGHTLY_BINARY']),223 ('/​/​rb:safari-preview-test' if SeleniumRake::Checks.mac?),224 ('/​/​rb:safari-test' if SeleniumRake::Checks.mac?),225 ('/​/​rb:ie-test' if SeleniumRake::Checks.windows?),226 ('/​/​rb:edge-test' unless SeleniumRake::Checks.linux?)227].compact228task test_rb_remote: [229 '/​/​rb:remote-chrome-test',230 '/​/​rb:remote-firefox-test',231 ('/​/​rb:remote-firefox-nightly-test' if ENV['FIREFOX_NIGHTLY_BINARY']),232 ('/​/​rb:remote-safari-test' if SeleniumRake::Checks.mac?),233 # BUG - https:/​/​github.com/​SeleniumHQ/​selenium/​issues/​6791234 # ('/​/​rb:remote-safari-preview-test' if SeleniumRake::Checks.mac?),235 ('/​/​rb:remote-ie-test' if SeleniumRake::Checks.windows?),236 ('/​/​rb:remote-edge-test' unless SeleniumRake::Checks.linux?)237].compact238task test_py: [:py_prep_for_install_release, 'py:marionette_test']239task test: %i[test_javascript test_java test_rb]240task test: [:test_py] if SeleniumRake::Checks.python?241task build: %i[all firefox remote selenium tests]242desc 'Clean build artifacts.'243task :clean do244 rm_rf 'build/​'245 rm_rf 'java/​build/​'246 rm_rf 'dist/​'247end248# Create a new IEGenerator instance249ie_generator = SeleniumRake::IEGenerator.new250# Generate a C++ Header file for mapping between magic numbers and #defines251# in the C++ code.252ie_generator.generate_type_mapping(253 name: 'ie_result_type_cpp',254 src: 'cpp/​iedriver/​result_types.txt',255 type: 'cpp',256 out: 'cpp/​iedriver/​IEReturnTypes.h'257)258task javadocs: %i[/​/​java/​src/​org/​openqa/​selenium/​grid:all-javadocs] do259 rm_rf 'build/​javadoc'260 mkdir_p 'build/​javadoc'261 # Temporary hack, bazel is not outputting where things are so we need to do it manually.262 # This will only work on Posix based OSes263 Rake::Task['/​/​java/​src/​org/​openqa/​selenium/​grid:all-javadocs']264 out = 'bazel-bin/​java/​src/​org/​openqa/​selenium/​grid/​all-javadocs.jar'265 cmd = %{cd build/​javadoc && jar xf "../​../​#{out}" 2>&1}266 if SeleniumRake::Checks.windows?267 cmd = cmd.gsub(/​\/​/​, '\\').gsub(/​:/​, ';')268 end269 ok = system(cmd)270 ok or raise "could not unpack javadocs"271 File.open('build/​javadoc/​stylesheet.css', 'a') { |file|272 file.write(<<~EOF273 /​* Custom selenium-specific styling */​274 .blink {275 animation: 2s cubic-bezier(0.5, 0, 0.85, 0.85) infinite blink;276 }277 @keyframes blink {278 50% {279 opacity: 0;280 }281 }282 EOF283 )284 }285end286file 'cpp/​iedriver/​sizzle.h' => ['/​/​third_party/​js/​sizzle:sizzle:header'] do287 cp 'build/​third_party/​js/​sizzle/​sizzle.h', 'cpp/​iedriver/​sizzle.h'288end289task sizzle_header: ['cpp/​iedriver/​sizzle.h']290task ios_driver: [291 '/​/​javascript/​atoms/​fragments:get_visible_text:ios',292 '/​/​javascript/​atoms/​fragments:click:ios',293 '/​/​javascript/​atoms/​fragments:back:ios',294 '/​/​javascript/​atoms/​fragments:forward:ios',295 '/​/​javascript/​atoms/​fragments:submit:ios',296 '/​/​javascript/​atoms/​fragments:xpath:ios',297 '/​/​javascript/​atoms/​fragments:xpaths:ios',298 '/​/​javascript/​atoms/​fragments:type:ios',299 '/​/​javascript/​atoms/​fragments:get_attribute:ios',300 '/​/​javascript/​atoms/​fragments:clear:ios',301 '/​/​javascript/​atoms/​fragments:is_selected:ios',302 '/​/​javascript/​atoms/​fragments:is_enabled:ios',303 '/​/​javascript/​atoms/​fragments:is_shown:ios',304 '/​/​javascript/​atoms/​fragments:stringify:ios',305 '/​/​javascript/​atoms/​fragments:link_text:ios',306 '/​/​javascript/​atoms/​fragments:link_texts:ios',307 '/​/​javascript/​atoms/​fragments:partial_link_text:ios',308 '/​/​javascript/​atoms/​fragments:partial_link_texts:ios',309 '/​/​javascript/​atoms/​fragments:get_interactable_size:ios',310 '/​/​javascript/​atoms/​fragments:scroll_into_view:ios',311 '/​/​javascript/​atoms/​fragments:get_effective_style:ios',312 '/​/​javascript/​atoms/​fragments:get_element_size:ios',313 '/​/​javascript/​webdriver/​atoms/​fragments:get_location_in_view:ios'314]315task 'prep-release-zip': [316 '/​/​java/​src/​org/​openqa/​selenium:client-zip',317 '/​/​java/​src/​org/​openqa/​selenium/​grid:server-zip',318 '/​/​java/​src/​org/​openqa/​selenium/​grid:executable-grid',319 '/​/​java/​src/​org/​openqa/​selenium/​server/​htmlrunner:selenium-runner_deploy.jar'320] do321 ["build/​dist/​selenium-server-#{version}.zip", "build/​dist/​selenium-java-#{version}.zip",322 "build/​dist/​selenium-server-#{version}.jar", "build/​dist/​selenium-html-runner-#{version}.jar"].each do |f|323 rm_f(f) if File.exists?(f)324 end325 mkdir_p 'build/​dist'326 File.delete327 cp Rake::Task['/​/​java/​src/​org/​openqa/​selenium/​grid:server-zip'].out, "build/​dist/​selenium-server-#{version}.zip", preserve: false328 chmod 0666, "build/​dist/​selenium-server-#{version}.zip"329 cp Rake::Task['/​/​java/​src/​org/​openqa/​selenium:client-zip'].out, "build/​dist/​selenium-java-#{version}.zip", preserve: false330 chmod 0666, "build/​dist/​selenium-java-#{version}.zip"331 cp Rake::Task['/​/​java/​src/​org/​openqa/​selenium/​grid:executable-grid'].out, "build/​dist/​selenium-server-#{version}.jar", preserve: false332 chmod 0666, "build/​dist/​selenium-server-#{version}.jar"333 cp Rake::Task['/​/​java/​src/​org/​openqa/​selenium/​server/​htmlrunner:selenium-runner_deploy.jar'].out, "build/​dist/​selenium-html-runner-#{version}.jar", preserve: false334 chmod 0666, "build/​dist/​selenium-html-runner-#{version}.jar"335end336task 'release-java': %i[prep-release-zip publish-maven]337def read_user_pass_from_m2_settings338 settings = File.read(ENV['HOME'] + '/​.m2/​settings.xml')339 found_section = false340 user = nil341 pass = nil342 settings.each_line do |line|343 if !found_section344 found_section = line.include? '<id>sonatype-nexus-staging</​id>'345 else346 if (user.nil?) && line.include?('<username>')347 user = line.split('<username>')[1].split('</​')[0]348 elsif (pass.nil?) && line.include?('<password>')349 pass = line.split('<password>')[1].split('</​')[0]350 end351 end352 end353 return [user, pass]354end355task 'publish-maven': JAVA_RELEASE_TARGETS + %w[/​/​java/​src/​org/​openqa/​selenium/​server/​htmlrunner:selenium-runner_deploy.jar] do356 creds = read_user_pass_from_m2_settings357 JAVA_RELEASE_TARGETS.each do |p|358 Bazel::execute('run', ['--stamp', '--define', 'maven_repo=https:/​/​oss.sonatype.org/​service/​local/​staging/​deploy/​maven2', '--define', "maven_user=#{creds[0]}", '--define', "maven_password=#{creds[1]}", '--define', 'gpg_sign=true'], p)359 end360end361task :'maven-install' do362 JAVA_RELEASE_TARGETS.each do |p|363 Bazel::execute('run', ['--stamp', '--define', "maven_repo=file:/​/​#{ENV['HOME']}/​.m2/​repository", '--define', 'gpg_sign=true'], p)364 end365end366desc 'Build the selenium client jars'367task 'selenium-java' => '/​/​java/​src/​org/​openqa/​selenium:client-combined'368namespace :safari do369 desc 'Build the SafariDriver java client'370 task build: [371 '/​/​java/​src/​org/​openqa/​selenium/​safari'372 ]373end374task :authors do375 puts 'Generating AUTHORS file'376 sh "(git log --use-mailmap --format='%aN <%aE>' ; cat .OLD_AUTHORS) | sort -uf > AUTHORS"377end378namespace :copyright do379 task :update do380 Copyright.new.update(381 FileList['javascript/​**/​*.js'].exclude(382 'javascript/​atoms/​test/​jquery.min.js',383 'javascript/​jsunit/​**/​*.js',384 'javascript/​node/​selenium-webdriver/​node_modules/​**/​*.js',385 'javascript/​selenium-core/​lib/​**/​*.js',386 'javascript/​selenium-core/​scripts/​ui-element.js',387 'javascript/​selenium-core/​scripts/​ui-map-sample.js',388 'javascript/​selenium-core/​scripts/​user-extensions.js',389 'javascript/​selenium-core/​scripts/​xmlextras.js',390 'javascript/​selenium-core/​xpath/​**/​*.js'391 )392 )393 Copyright.new(comment_characters: '#').update(FileList['py/​**/​*.py'])394 Copyright.new(comment_characters: '#', prefix: ["# frozen_string_literal: true\n", "\n"])395 .update(FileList['rb/​**/​*.rb'])396 Copyright.new.update(FileList['java/​**/​*.java'])397 end398end399namespace :side do400 task atoms: [401 '/​/​javascript/​atoms/​fragments:find-element'402 ] do403 # TODO: move directly to IDE's directory once the repositories are merged404 baseDir = 'build/​javascript/​atoms'405 mkdir_p baseDir406 [407 Rake::Task['/​/​javascript/​atoms/​fragments:find-element'].out408 ].each do |atom|409 name = File.basename(atom)410 puts "Generating #{atom} as #{name}"411 File.open(File.join(baseDir, name), 'w') do |f|412 f << "/​/​ GENERATED CODE - DO NOT EDIT\n"413 f << 'module.exports = '414 f << IO.read(atom).strip415 f << ";\n"416 end417 end418 end419end420namespace :node do421 atom_list = %w[422 /​/​javascript/​atoms/​fragments:find-elements423 /​/​javascript/​atoms/​fragments:is-displayed424 /​/​javascript/​webdriver/​atoms:get-attribute425 ]426 task atoms: atom_list do427 baseDir = 'javascript/​node/​selenium-webdriver/​lib/​atoms'428 mkdir_p baseDir429 puts 'rake outs are below'430 p rake_outs = [431 Rake::Task['/​/​javascript/​atoms/​fragments:is-displayed'].out,432 Rake::Task['/​/​javascript/​webdriver/​atoms:get-attribute'].out,433 Rake::Task['/​/​javascript/​atoms/​fragments:find-elements'].out434 ]435 rake_outs.each do |atom|436 puts "atom is #{atom}\n"437 name = File.basename(atom)438 puts "Generating #{atom} as #{name}"439 File.open(File.join(baseDir, name), 'w') do |f|440 f << "/​/​ GENERATED CODE - DO NOT EDIT\n"441 f << 'module.exports = '442 f << IO.read(atom).strip443 f << ";\n"444 end445 end446 end447 task :build do448 sh 'bazel build /​/​javascript/​node/​selenium-webdriver'449 end450 task 'dry-run': [451 'node:build'452 ] do453 sh 'bazel run javascript/​node/​selenium-webdriver:selenium-webdriver.pack'454 end455 task deploy: [456 'node:build'457 ] do458 sh 'bazel run javascript/​node/​selenium-webdriver:selenium-webdriver.publish'459 end460 task :docs do461 sh 'node javascript/​node/​gendocs.js'462 end463end464namespace :py do465 task prep: [466 '/​/​javascript/​atoms/​fragments:is-displayed',467 '/​/​javascript/​webdriver/​atoms:get-attribute',468 '/​/​third_party/​js/​selenium:webdriver_xpi'469 ] do470 py_home = 'py/​'471 remote_py_home = py_home + 'selenium/​webdriver/​remote/​'472 firefox_py_home = py_home + 'selenium/​webdriver/​firefox/​'473 if SeleniumRake::Checks.windows?474 remote_py_home = remote_py_home.gsub(/​\/​/​, '\\')475 firefox_py_home = firefox_py_home .gsub(/​\/​/​, '\\')476 end477 cp Rake::Task['/​/​javascript/​atoms/​fragments:is-displayed'].out, remote_py_home + 'isDisplayed.js', verbose: true478 cp Rake::Task['/​/​javascript/​webdriver/​atoms:get-attribute'].out, remote_py_home + 'getAttribute.js', verbose: true479 cp Rake::Task['/​/​third_party/​js/​selenium:webdriver_xpi'].out, firefox_py_home, verbose: true480 cp 'third_party/​js/​selenium/​webdriver.json', firefox_py_home + 'webdriver_prefs.json', verbose: true481 cp 'LICENSE', py_home + 'LICENSE', verbose: true482 end483 bazel :unit do484 Bazel.execute('test', [], '/​/​py:unit')485 end486 task docs: :prep do487 sh 'tox -c py/​tox.ini -e docs', verbose: true488 end489 task install: :prep do490 Dir.chdir('py') do491 sh py_exe + ' setup.py install', verbose: true492 end493 end494 %w[chrome ff marionette ie edge remote_firefox safari].each do |browser|495 browser_data = SeleniumRake::Browsers::BROWSERS[browser]496 deps = browser_data[:deps] || []497 deps += [:prep]...

Full Screen

Full Screen

dsl.rb

Source: dsl.rb Github

copy

Full Screen

1module Rake2 module DSL3 def bazel(*args, &block)4 Bazel::Task.define_task(*args, &block)5 end6 end7end...

Full Screen

Full Screen

bazel

Using AI Code Generation

copy

Full Screen

1 def bazel(*args)2 task = Rake::Task.define_task(*args) do3 def bazel(*args)4 task = Rake::Task.define_task(*args) do5 def bazel(*args)6 task = Rake::Task.define_task(*args) do7 def bazel(*args)8 task = Rake::Task.define_task(*args) do9 def bazel(*args)10 task = Rake::Task.define_task(*args) do11 def bazel(*args)12 task = Rake::Task.define_task(*args) do

Full Screen

Full Screen

bazel

Using AI Code Generation

copy

Full Screen

1 def bazel(*args, &block)2 def bazel(*args, &block)3 def bazel(*args, &block)4 def bazel(*args, &block)5 def bazel(*args, &block)6 def bazel(*args, &block)7 def bazel(*args, &block)8 def bazel(*args, &block)

Full Screen

Full Screen

bazel

Using AI Code Generation

copy

Full Screen

1 def bazel(*args, &block)2 def bazel(*args, &block)3 def bazel(*args, &block)4 def bazel(*args, &block)5 def bazel(*args, &block)6 def bazel(*args, &block)

Full Screen

Full Screen

StackOverFlow community discussions

Questions
Discussion

Change default Capybara browser window size

How can I implement wait_for_page_to_load in Selenium 2?

Element is not clickable at point (617, 690.5). Other element would receive the click: &lt;th&gt;...&lt;/th&gt; (Selenium::WebDriver::Error::UnknownError)

Executing JavaScript from a Cucumber/Capybara test

Selenium Webdriver Chromedriver timeout on start in headless mode

@driver.find_element(:id=&gt;&quot;body&quot;).text.include?(textcheck) not verifying the text only the id

Custom profile for Chrome

uninitialized constant Selenium::WebDriver::Chrome::Options (NameError)

how to scroll with selenium

What are some alternatives to Selenium?

A proper way to do it for all js tests is to add following inside spec_helper.rb RSpec.configure block

config.before(:each, js: true) do
  Capybara.page.driver.browser.manage.window.maximize
end

to maximize the window. Change to resize_to(x,y) to set any window size.

EDIT: If you happen to be using Poltergeist the correct way to do it is

config.before(:each, js: true) do
  Capybara.page.driver.browser.resize(x,y)
end
https://stackoverflow.com/questions/18390071/change-default-capybara-browser-window-size

Blogs

Check out the latest blogs from LambdaTest on this topic:

Why You Need To Care About Automated Functional Testing In 2020?

How many times have you come across products that have good UI but really bad functionality such as severe lagging experience and ample number of bugs or vice-versa. There could be multiple reasons for the product to go live, but it definitely gives an indication that thorough testing was not performed. There could be scenarios where a minor software update which was not tested for all the ‘corner scenarios’ could break the existing functionalities in a software product.

19 Best Practices For Automation testing With Node.js

Node js has become one of the most popular frameworks in JavaScript today. Used by millions of developers, to develop thousands of project, node js is being extensively used. The more you develop, the better the testing you require to have a smooth, seamless application. This article shares the best practices for the testing node.in 2019, to deliver a robust web application or website.

Selenium with Python Tutorial: Running First PyUnit Script

This article is a part of our Content Hub. For more in-depth resources, check out our content hub on Selenium Python Tutorial.

Test Verification vs Validation in Website Testing

Verification and Validation, both are important testing activities that collectively define all the mandatory testing activities a tester along with the entire team needs to perform when you are developing a website for either your organization or for the client. For testers, especially those who are new in the industry, understanding the difference between test verification vs validation in website testing may seem to be a bit complex. Because both involve checking whether the website is being developed in the right manner. This is also why I have observed a lot of ambiguity among the teams working on a project.

JavaScript Cross Browser Compatible Issues And How To Solve Them

This article is a part of our Content Hub. For more in-depth resources, check out our content hub on Selenium JavaScript Tutorial.

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Selenium automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Most used method in

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful