Best Selenium code snippet using Selenium.WebDriver.Support.exclude
Rakefile
Source:Rakefile
...297 sourcepath += File::PATH_SEPARATOR + m298 end299 p sourcepath300 cmd = "javadoc -notimestamp -d build/javadoc -sourcepath #{sourcepath} -classpath #{classpath} -subpackages org.openqa.selenium -subpackages com.thoughtworks "301 cmd << " -exclude org.openqa.selenium.internal.selenesedriver:org.openqa.selenium.internal.seleniumemulation:org.openqa.selenium.remote.internal"302 if (windows?)303 cmd = cmd.gsub(/\//, "\\").gsub(/:/, ";")304 end305 sh cmd306end307task :py_prep_for_install_release => [308 :chrome,309 "//py:prep"310]311task :py_docs => "//py:docs"312task :py_install => "//py:install"313task :py_release => :py_prep_for_install_release do314 sh "python setup.py sdist bdist_wheel upload"315end316file "cpp/iedriver/sizzle.h" => [ "//third_party/js/sizzle:sizzle:header" ] do317 cp "build/third_party/js/sizzle/sizzle.h", "cpp/iedriver/sizzle.h"318end319task :sizzle_header => [ "cpp/iedriver/sizzle.h" ]320task :ios_driver => [321 "//javascript/atoms/fragments:get_visible_text:ios",322 "//javascript/atoms/fragments:click:ios",323 "//javascript/atoms/fragments:back:ios",324 "//javascript/atoms/fragments:forward:ios",325 "//javascript/atoms/fragments:submit:ios",326 "//javascript/atoms/fragments:xpath:ios",327 "//javascript/atoms/fragments:xpaths:ios",328 "//javascript/atoms/fragments:type:ios",329 "//javascript/atoms/fragments:get_attribute:ios",330 "//javascript/atoms/fragments:clear:ios",331 "//javascript/atoms/fragments:is_selected:ios",332 "//javascript/atoms/fragments:is_enabled:ios",333 "//javascript/atoms/fragments:is_shown:ios",334 "//javascript/atoms/fragments:stringify:ios",335 "//javascript/atoms/fragments:link_text:ios",336 "//javascript/atoms/fragments:link_texts:ios",337 "//javascript/atoms/fragments:partial_link_text:ios",338 "//javascript/atoms/fragments:partial_link_texts:ios",339 "//javascript/atoms/fragments:get_interactable_size:ios",340 "//javascript/atoms/fragments:scroll_into_view:ios",341 "//javascript/atoms/fragments:get_effective_style:ios",342 "//javascript/atoms/fragments:get_element_size:ios",343 "//javascript/webdriver/atoms/fragments:get_location_in_view:ios"344]345file "build/javascript/deps.js" => FileList[346 "third_party/closure/goog/**/*.js",347 "third_party/js/wgxpath/**/*.js",348 "javascript/*/**/*.js", # Don't depend on js files directly in javascript/349 ] do350 puts "Scanning deps"351 deps = Javascript::ClosureDeps.new352 Dir["javascript/*/**/*.js"].353 reject {|f| f[/javascript\/node/]}.354 each {|f| deps.parse_file(f)}355 Dir["third_party/js/wgxpath/**/*.js"].each {|f| deps.parse_file(f)}356 built_deps = "build/javascript/deps.js"357 puts "Writing #{built_deps}"358 mkdir_p File.dirname(built_deps)359 deps.write_deps(built_deps)360 cp built_deps, "javascript/deps.js"361end362desc "Calculate dependencies required for testing the automation atoms"363task :calcdeps => "build/javascript/deps.js"364desc "Repack jetty"365task "repack-jetty" => "build/third_party/java/jetty/jetty-repacked.jar"366# Expose the repack task to CrazyFun.367task "//third_party/java/jetty:repacked" => "build/third_party/java/jetty/jetty-repacked.jar"368file "build/third_party/java/jetty/jetty-repacked.jar" => [369 "third_party/java/jetty/jetty-continuation-9.2.13.v20150730.jar",370 "third_party/java/jetty/jetty-http-9.2.13.v20150730.jar",371 "third_party/java/jetty/jetty-io-9.2.13.v20150730.jar",372 "third_party/java/jetty/jetty-jmx-9.2.13.v20150730.jar",373 "third_party/java/jetty/jetty-security-9.2.13.v20150730.jar",374 "third_party/java/jetty/jetty-server-9.2.13.v20150730.jar",375 "third_party/java/jetty/jetty-servlet-9.2.13.v20150730.jar",376 "third_party/java/jetty/jetty-servlets-9.2.13.v20150730.jar",377 "third_party/java/jetty/jetty-util-9.2.13.v20150730.jar"378 ] do |t|379 print "Repacking jetty\n"380 root = File.join("build", "third_party", "java", "jetty")381 jarjar = File.join("third_party", "java", "jarjar", "jarjar-1.4.jar")382 rules = File.join("third_party", "java", "jetty", "jetty-repack-rules")383 temp = File.join(root, "temp")384 # First, process the files385 mkdir_p root386 mkdir_p temp387 t.prerequisites.each do |pre|388 filename = File.basename(pre, ".jar")389 out = File.join(root, "#{filename}-repacked.jar")390 `java -jar #{jarjar} process #{rules} #{pre} #{out}`391 `cd #{temp} && jar xf #{File.join("..", File.basename(out))}`392 end393 # Now, merge them394 `cd #{temp} && jar cvf #{File.join("..", "jetty-repacked.jar")} *`395 # And copy the artifact to third_party so that eclipse users can be made happy396 cp "build/third_party/java/jetty/jetty-repacked.jar", "third_party/java/jetty/jetty-repacked.jar"397end398task :'maven-dry-run' => JAVA_RELEASE_TARGETS do |t|399 t.prerequisites.each do |p|400 if JAVA_RELEASE_TARGETS.include?(p)401 Buck::buck_cmd.call('publish', ['--dry-run', '--remote-repo', 'https://oss.sonatype.org/service/local/staging/deploy/maven2', p])402 end403 end404end405task :'prep-release-zip' => [406 '//java/client/src/org/openqa/selenium:client-combined:zip',407 '//java/server/src/org/openqa/grid/selenium:selenium:zip',408 '//java/server/src/org/openqa/selenium/server/htmlrunner:selenium-runner'] do |t|409 mkdir_p "build/dist"410 cp Rake::Task['//java/server/src/org/openqa/grid/selenium:selenium'].out, "build/dist/selenium-server-standalone-#{version}.jar"411 cp Rake::Task['//java/server/src/org/openqa/grid/selenium:selenium:zip'].out, "build/dist/selenium-server-#{version}.zip"412 `jar uf build/dist/selenium-server-#{version}.zip NOTICE LICENSE`413 `cd java && jar uf ../build/dist/selenium-server-#{version}.zip CHANGELOG`414 cp Rake::Task['//java/client/src/org/openqa/selenium:client-combined:zip'].out, "build/dist/selenium-java-#{version}.zip"415 `jar uf build/dist/selenium-java-#{version}.zip NOTICE LICENSE`416 `cd java && jar uf ../build/dist/selenium-server-#{version}.zip CHANGELOG`417 cp Rake::Task['//java/server/src/org/openqa/selenium/server/htmlrunner:selenium-runner'].out, "build/dist/selenium-html-runner-#{version}.jar"418end419task :release => JAVA_RELEASE_TARGETS + ['prep-release-zip'] do |t|420 puts t.prerequisites.join(', ')421 t.prerequisites.each do |p|422 if JAVA_RELEASE_TARGETS.include?(p)423 Buck::buck_cmd.call('publish', ['--dry-run', '--remote-repo', 'https://oss.sonatype.org/service/local/staging/deploy/maven2', p])424 end425 end426end427def read_user_pass_from_m2_settings428 settings = File.read(ENV['HOME'] + "/.m2/settings.xml")429 found_section = false430 user = nil431 pass = nil432 settings.each_line do |line|433 if !found_section434 found_section = line.include? "<id>sonatype-nexus-staging</id>"435 else436 if user == nil and line.include? "<username>"437 user = line.split("<username>")[1].split("</")[0]438 elsif pass == nil and line.include? "<password>"439 pass = line.split("<password>")[1].split("</")[0]440 end441 end442 end443 return [user, pass]444end445task :'publish-maven' do446 puts "\n Enter Passphrase:"447 passphrase = STDIN.gets.chomp448 creds = read_user_pass_from_m2_settings()449 JAVA_RELEASE_TARGETS.each do |p|450 if JAVA_RELEASE_TARGETS.include?(p)451 Buck::buck_cmd.call('publish', ['--remote-repo', 'https://oss.sonatype.org/service/local/staging/deploy/maven2', '--include-source', '--include-javadoc', '-u', creds[0], '-p', creds[1], '--signing-passphrase', passphrase, p])452 end453 end454end455task :'maven-install' do456 JAVA_RELEASE_TARGETS.each do |p|457 if JAVA_RELEASE_TARGETS.include?(p)458 Buck::buck_cmd.call('publish', ['--remote-repo', "file://#{ENV['HOME']}/.m2/repository", '--include-source', '--include-javadoc', p])459 end460 end461end462task :push_release => [:release] do463 py = "java -jar third_party/py/jython.jar"464 if (python?)465 py = "python"466 end467 sh "#{py} third_party/py/googlestorage/publish_release.py --project_id google.com:webdriver --bucket selenium-release --acl public-read --publish_version #{release_version} --publish build/dist/selenium-server-standalone-#{version}.jar --publish build/dist/selenium-server-#{version}.zip --publish build/dist/selenium-java-#{version}.zip build/dist/selenium-html-runner-#{version}.jar"468end469desc 'Build the selenium client jars'470task 'selenium-java' => '//java/client/src/org/openqa/selenium:selenium'471desc 'Build and package Selenium IDE'472task :release_ide => [:ide] do473 cp 'build/ide/selenium-ide.xpi', "build/ide/selenium-ide-#{ide_version}.xpi"474end475namespace :node do476 task :atoms => [477 "//javascript/atoms/fragments:is-displayed",478 "//javascript/webdriver/atoms:getAttribute",479 ] do480 baseDir = "javascript/node/selenium-webdriver/lib/atoms"481 mkdir_p baseDir482 [483 Rake::Task["//javascript/atoms/fragments:is-displayed"].out,484 Rake::Task["//javascript/webdriver/atoms:getAttribute"].out,485 ].each do |atom|486 name = File.basename(atom)487 puts "Generating #{atom} as #{name}"488 File.open(File.join(baseDir, name), "w") do |f|489 f << "// GENERATED CODE - DO NOT EDIT\n"490 f << "module.exports = "491 f << IO.read(atom).strip492 f << ";\n"493 end494 end495 end496 task :deploy => [497 "node:atoms",498 "//cpp:noblur",499 "//cpp:noblur64",500 "//javascript/firefox-driver:webdriver",501 ] do502 cmd = "node javascript/node/deploy.js" <<503 " --output=build/javascript/node/selenium-webdriver" <<504 " --resource=LICENSE:/LICENSE" <<505 " --resource=NOTICE:/NOTICE" <<506 " --resource=javascript/firefox-driver/webdriver.json:firefox/webdriver.json" <<507 " --resource=build/cpp/amd64/libnoblur64.so:firefox/amd64/libnoblur64.so" <<508 " --resource=build/cpp/i386/libnoblur.so:firefox/i386/libnoblur.so" <<509 " --resource=build/javascript/firefox-driver/webdriver.xpi:firefox/webdriver.xpi" <<510 " --resource=common/src/web/:test/data/" <<511 " --exclude_resource=common/src/web/Bin" <<512 " --exclude_resource=.gitignore" <<513 " --src=javascript/node/selenium-webdriver"514 sh cmd515 end516 task :docs do517 sh "node javascript/node/gendocs.js"518 end519end520namespace :safari do521 desc "Build the SafariDriver java client"522 task :build => [523 "//java/client/src/org/openqa/selenium/safari"524 ]525end526task :authors do527 puts "Generating AUTHORS file"528 sh "(git log --use-mailmap --format='%aN <%aE>' ; cat .OLD_AUTHORS) | sort -uf > AUTHORS"529end530namespace :copyright do531 task :update do532 Copyright.Update(533 FileList["javascript/**/*.js"].exclude(534 "javascript/atoms/test/jquery.min.js",535 "javascript/firefox-driver/extension/components/httpd.js",536 "javascript/jsunit/**/*.js",537 "javascript/node/selenium-webdriver/node_modules/**/*.js",538 "javascript/selenium-core/lib/**/*.js",539 "javascript/selenium-core/scripts/ui-element.js",540 "javascript/selenium-core/scripts/ui-map-sample.js",541 "javascript/selenium-core/scripts/user-extensions.js",542 "javascript/selenium-core/scripts/xmlextras.js",543 "javascript/selenium-core/xpath/**/*.js"))544 Copyright.Update(545 FileList["py/**/*.py"],546 :style => "#")547 Copyright.Update(548 FileList["rb/**/*.rb"].exclude(549 "rb/spec/integration/selenium/client/api/screenshot_spec.rb"),550 :style => "#",551 :prefix => "# encoding: utf-8\n#\n")552 Copyright.Update(553 FileList["java/**/*.java"].exclude(554 "java/client/src/org/openqa/selenium/internal/Base64Encoder.java",555 "java/client/test/org/openqa/selenium/internal/Base64EncoderTest.java",556 "java/server/src/cybervillains/**/*.java",557 "java/server/src/org/openqa/selenium/server/FrameGroupCommandQueueSet.java",558 "java/server/src/org/openqa/selenium/server/FutureFileResource.java",559 "java/server/src/org/openqa/selenium/server/ProxyHandler.java"560 ))561 end562end563at_exit do564 if File.exist?(".git") && !Platform.windows?565 sh "sh .git-fixfiles"566 end567end...
guard_spec.rb
Source:guard_spec.rb
...22 module Support23 describe Guards do24 describe '#new' do25 it 'collects guards from example only for known guard types',26 except: {}, only: {}, exclusive: {}, exclude: {}, ignored: {} do |example|27 guards = WebDriver::Support::Guards.new(example)28 types = guards.instance_variable_get(:@guards).map { |g| g.instance_variable_get(:@type) }29 expect(types).to include :except, :only, :exclusive, :exclude30 expect(types).not_to include :ignored31 end32 it 'accepts bug tracker value' do |example|33 guards = WebDriver::Support::Guards.new(example, bug_tracker: 'https://example.com/bugs')34 expect(guards.instance_variable_get(:@bug_tracker)).to eq 'https://example.com/bugs'35 end36 it 'accepts conditions' do |example|37 condition1 = WebDriver::Support::Guards::GuardCondition.new(:foo)38 condition2 = WebDriver::Support::Guards::GuardCondition.new(:bar)39 guards = WebDriver::Support::Guards.new(example, conditions: [condition1, condition2])40 expect(guards.instance_variable_get(:@guard_conditions)).to include condition1, condition241 end42 end43 describe '#add_conditions' do44 it 'sets multiple' do |example|45 guards = WebDriver::Support::Guards.new(example)46 guards.add_condition :foo, true47 guards.add_condition :bar, false48 expect(guards.instance_variable_get(:@guard_conditions).map(&:name)).to include :foo, :bar49 end50 end51 describe '#add_message' do52 it 'sets multiple custom messages' do |example|53 guards = WebDriver::Support::Guards.new(example)54 guards.add_message(:foo, 'The problem is foo')55 guards.add_message(:bar, 'The problem is bar')56 expect(guards.messages).to include({foo: 'The problem is foo'}, {bar: 'The problem is bar'})57 end58 end59 describe '#disposition' do60 it 'returns nothing' do |example|61 guards = WebDriver::Support::Guards.new(example)62 expect(guards.disposition).to be_nil63 end64 it 'is pending without provided reason', except: {foo: false} do |example|65 guards = WebDriver::Support::Guards.new(example)66 guards.add_condition(:foo, false)67 expect(guards.disposition).to eq [:pending, 'Test guarded; no reason given']68 end69 it 'is skipped without provided reason', exclusive: {foo: true} do |example|70 guards = WebDriver::Support::Guards.new(example)71 guards.add_condition(:foo, false)72 message = 'Test does not apply to this configuration; no reason given'73 expect(guards.disposition).to eq [:skip, message]74 end75 end76 describe '#satisfied?' do77 it 'evaluates guard' do |example|78 guards = WebDriver::Support::Guards.new(example)79 guards.add_condition(:foo, true)80 guards.add_condition(:bar, false)81 guard = Guards::Guard.new({foo: true, bar: false}, :only)82 expect(guards.satisfied?(guard)).to eq true83 end84 end85 end86 describe Guards::GuardCondition do87 describe '#new' do88 it 'accepts condition' do89 condition = Guards::GuardCondition.new(:foo, true)90 expect(condition.name).to eq :foo91 expect(condition.execution).to be_a Proc92 expect(condition.execution.call([true])).to eq true93 end94 it 'accepts block' do95 condition = Guards::GuardCondition.new(:foo) { |guarded| guarded.include?(7) }96 expect(condition.name).to eq :foo97 expect(condition.execution).to be_a Proc98 expect(condition.execution.call([7])).to eq true99 end100 end101 describe '#satisfied' do102 it 'returns true with corresponding guard' do103 condition = Guards::GuardCondition.new(:foo) { |guarded| guarded.include?(7) }104 guard = Guards::Guard.new({foo: 7}, :only)105 expect(condition.satisfied?(guard)).to eq true106 end107 it 'returns false with corresponding guard' do108 condition = Guards::GuardCondition.new(:foo) { |guarded| guarded.include?(7) }109 guard = Guards::Guard.new({foo: 8}, :except)110 expect(condition.satisfied?(guard)).to eq false111 end112 end113 end114 describe Guards::Guard do115 describe '#new' do116 it 'requires guarded Hash and type' do117 guard = Guards::Guard.new({foo: 7}, :only)118 expect(guard.guarded).to eq(foo: 7)119 expect(guard.type).to eq :only120 end121 it 'creates unknown message by default' do122 guard = Guards::Guard.new({foo: 7}, :only)123 expect(guard.messages).to include(unknown: 'TODO: Investigate why this is failing and file a bug report')124 end125 it 'accepts a reason in guarded' do126 guard = Guards::Guard.new({foo: 7, reason: 'because'}, :only)127 expect(guard.reason).to eq 'because'128 end129 end130 describe '#message' do131 it 'defaults to no reason given' do132 guard = Guards::Guard.new({}, :only)133 expect(guard.message).to eq('Test guarded; no reason given')134 end135 it 'accepts integer' do |example|136 guards = WebDriver::Support::Guards.new(example, bug_tracker: 'http://example.com/bugs')137 guard = Guards::Guard.new({reason: 1}, :only, guards)138 expect(guard.message).to eq('Test guarded; Bug Filed: http://example.com/bugs/1')139 end140 it 'accepts String' do141 guard = Guards::Guard.new({reason: 'because'}, :only)142 expect(guard.message).to eq('Test guarded; because')143 end144 it 'accepts Symbol of known message' do145 guard = Guards::Guard.new({reason: :unknown}, :only)146 expect(guard.message).to eq('Test guarded; TODO: Investigate why this is failing and file a bug report')147 end148 it 'accepts Symbol of new message' do |example|149 guards = WebDriver::Support::Guards.new(example)150 guards.add_message(:foo, 'all due to foo')151 guard = Guards::Guard.new({reason: :foo}, :only, guards)152 expect(guard.message).to eq('Test guarded; all due to foo')153 end154 it 'has special message for exclude' do155 guard = Guards::Guard.new({reason: 'because'}, :exclude)156 expect(guard.message).to eq('Test not guarded because it breaks test run; because')157 end158 it 'has special message for exclusive' do159 guard = Guards::Guard.new({reason: 'because'}, :exclusive)160 expect(guard.message).to eq('Test does not apply to this configuration; because')161 end162 end163 end164 end # Support165 end # WebDriver166end # Selenium...
guard.rb
Source:guard.rb
...42 else43 'no reason given'44 end45 case @type46 when :exclude47 "Test not guarded because it breaks test run; #{details}"48 when :exclusive49 "Test does not apply to this configuration; #{details}"50 else51 "Test guarded; #{details}"52 end53 end54 # Bug is present on all configurations specified55 def except?56 @type == :except57 end58 # Bug is present on all configurations not specified59 def only?60 @type == :only61 end62 # Bug is present on all configurations specified, but test can not be run because it breaks other tests63 def exclude?64 @type == :exclude65 end66 # Test only applies to configurations specified67 def exclusive?68 @type == :exclusive69 end70 def satisfied?71 satisfies_driver? && satisfies_browser? && satisfies_platform? && satisfies_window_manager?72 end73 private74 def expand_window_manager(guard)75 return unless guard.key?(:window_manager)76 @window_manager = guard[:window_manager]77 end78 def expand_drivers(guard)...
exclude
Using AI Code Generation
1driver.find_element(:name, "q").send_keys "Selenium"2driver.find_element(:name, "q").send_keys :enter3driver.find_element(:link_text, "Images").click4driver.find_element(:css, "input[title='Search']").send_keys "Selenium"5driver.find_element(:css, "input[title='Search']").send_keys :enter6driver.find_element(:css, "input[title='Search']").send_keys "Selenium"7driver.find_element(:css, "input[title='Search']").send_keys :enter8driver.find_element(:css, "input[title='Search']").send_keys "Selenium"9driver.find_element(:css, "input[title='Search']").send_keys :enter10driver.find_element(:css, "input[title='Search']").send_keys "Selenium"11driver.find_element(:css, "input[title='Search']").send_keys :enter12driver.find_element(:css, "input[title='Search']").send_keys "Selenium"13driver.find_element(:css, "input[title='Search']").send_keys :enter14driver.find_element(:css, "input[title='Search']").send_keys "Selenium"15driver.find_element(:css, "input[title='Search']").send_keys :enter16driver.find_element(:css, "input[title='Search']").send_keys "Selenium"17driver.find_element(:css, "input[title='Search']").send_keys :enter18driver.find_element(:css, "input[title='Search']").send_keys "Selenium"19driver.find_element(:css, "input[title='Search']").send_keys :enter20driver.find_element(:css, "input[title='Search']").send_keys "Selenium"21driver.find_element(:css, "input[title='Search']").send_keys :enter22driver.find_element(:css, "input[title='Search']").send_keys "Selenium"23driver.find_element(:css, "input[title='Search']").send_keys :enter24driver.find_element(:css, "input[title='Search']").send_keys "Selenium"25driver.find_element(:css, "input[title='Search']").send_keys :enter
exclude
Using AI Code Generation
1driver.find_element(:name, 'q').send_keys("Selenium WebDriver")2driver.find_element(:name, 'btnG').click3driver.find_element(:link_text, 'Selenium - Web Browser Automation').click4wait = Selenium::WebDriver::Wait.new(:timeout => 10)5wait.until { driver.find_element(:id, 'footer').displayed? }6wait.until { driver.find_element(:id, 'footer').displayed? }7Selenium::WebDriver::Error::NoSuchElementError: Unable to locate element: {“method”=>“id”, “selector”=>“footer”}
exclude
Using AI Code Generation
1driver.find_element(:name,'q').send_keys('selenium webdriver')2driver.find_element(:name,'btnK').click3element = driver.find_element(:xpath,'//div[@id="resultStats"]')4About 2,960,000 results (0.45 seconds)
exclude
Using AI Code Generation
1elements = driver.find_elements(:xpath, "//*")2inputs = driver.find_elements(:xpath, "//input")3text_inputs = driver.find_elements(:xpath, "//input[@type='text']")4search_text_inputs = driver.find_elements(:xpath, "//input[@type='text'][@name='q']")5search_text_inputs_maxlength = driver.find_elements(:xpath, "//input[@type='text'][@name='q'][@maxlength='2048']")6search_text_inputs_maxlength_title = driver.find_elements(:xpath, "//input[@type='text'][@name='q'][@maxlength='2048'][@title='Google Search']")7search_text_inputs_maxlength_title_class = driver.find_elements(:xpath, "//input[@type='text'][@name='q'][@maxlength='2048'][@title='Google Search'][@class='gsfi']")
exclude
Using AI Code Generation
1elements = driver.find_elements(:tag_name, "a")2Selenium WebDriver - Find Element(s) By3Selenium WebDriver - Find Element(s) By XPath4Selenium WebDriver - Find Element(s) By CSS Selector5Selenium WebDriver - Find Element(s) By Link Text6Selenium WebDriver - Find Element(s) By Partial Link Text7Selenium WebDriver - Find Element(s) By Tag Name8Selenium WebDriver - Find Element(s) By Class Name9Selenium WebDriver - Find Element(s) By Name10Selenium WebDriver - Find Element(s) By ID11Selenium WebDriver - Find Element(s) By Multiple Attributes12Selenium WebDriver - Find Element(s) By XPath Attribute13Selenium WebDriver - Find Element(s) By XPath Text14Selenium WebDriver - Find Element(s) By XPath Contains15Selenium WebDriver - Find Element(s) By XPath Starts With16Selenium WebDriver - Find Element(s) By XPath Ends With17Selenium WebDriver - Find Element(s) By XPath Contains Word18Selenium WebDriver - Find Element(s) By XPath Position19Selenium WebDriver - Find Element(s) By XPath Following20Selenium WebDriver - Find Element(s) By XPath Following Sibling21Selenium WebDriver - Find Element(s) By XPath Parent22Selenium WebDriver - Find Element(s) By XPath Ancestor23Selenium WebDriver - Find Element(s) By XPath Ancestor Or Self24Selenium WebDriver - Find Element(s) By XPath Preceding25Selenium WebDriver - Find Element(s) By XPath Preceding Sibling
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.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!