Best Selenium code snippet using Selenium.WebDriver.inspect
profile.rb
Source:profile.rb
...37 end38 def from_name(name)39 profile = ini[name]40 return profile if profile41 raise Error::WebDriverError, "unable to find profile named: #{name.inspect}"42 end43 def default_preferences44 @default_preferences ||= JSON.parse(45 File.read(File.expand_path("#{WebDriver.root}/selenium/webdriver/firefox/extension/prefs.json"))46 ).freeze47 end48 end49 #50 # Create a new Profile instance51 #52 # @example User configured profile53 #54 # profile = Selenium::WebDriver::Firefox::Profile.new55 # profile['network.proxy.http'] = 'localhost'56 # profile['network.proxy.http_port'] = 909057 #58 # driver = Selenium::WebDriver.for :firefox, :profile => profile59 #60 def initialize(model = nil)61 @model = verify_model(model)62 model_prefs = read_model_prefs63 if model_prefs.empty?64 @native_events = DEFAULT_ENABLE_NATIVE_EVENTS65 @secure_ssl = DEFAULT_SECURE_SSL66 @untrusted_issuer = DEFAULT_ASSUME_UNTRUSTED_ISSUER67 @load_no_focus_lib = DEFAULT_LOAD_NO_FOCUS_LIB68 @additional_prefs = {}69 else70 # TODO: clean this up71 @native_events = model_prefs.delete(WEBDRIVER_PREFS[:native_events]) == 'true'72 @secure_ssl = model_prefs.delete(WEBDRIVER_PREFS[:untrusted_certs]) != 'true'73 @untrusted_issuer = model_prefs.delete(WEBDRIVER_PREFS[:untrusted_issuer]) == 'true'74 # not stored in profile atm, so will always be false.75 @load_no_focus_lib = model_prefs.delete(WEBDRIVER_PREFS[:load_no_focus_lib]) == 'true'76 @additional_prefs = model_prefs77 end78 @extensions = {}79 end80 def layout_on_disk81 profile_dir = @model ? create_tmp_copy(@model) : Dir.mktmpdir('webdriver-profile')82 FileReaper << profile_dir83 install_extensions(profile_dir)84 delete_lock_files(profile_dir)85 delete_extensions_cache(profile_dir)86 update_user_prefs_in(profile_dir)87 profile_dir88 end89 #90 # Set a preference for this particular profile.91 #92 # @see http://kb.mozillazine.org/About:config_entries93 # @see http://preferential.mozdev.org/preferences.html94 #95 def []=(key, value)96 unless VALID_PREFERENCE_TYPES.any? { |e| value.is_a? e }97 raise TypeError, "expected one of #{VALID_PREFERENCE_TYPES.inspect}, got #{value.inspect}:#{value.class}"98 end99 if value.is_a?(String) && Util.stringified?(value)100 raise ArgumentError, "preference values must be plain strings: #{key.inspect} => #{value.inspect}"101 end102 @additional_prefs[key.to_s] = value103 end104 def port=(port)105 self[WEBDRIVER_PREFS[:port]] = port106 end107 def log_file=(file)108 @log_file = file109 self[WEBDRIVER_PREFS[:log_file]] = file110 end111 def add_webdriver_extension112 return if @extensions.key?(:webdriver)113 add_extension(WEBDRIVER_EXTENSION_PATH, :webdriver)114 end115 #116 # Add the extension (directory, .zip or .xpi) at the given path to the profile.117 #118 def add_extension(path, name = extension_name_for(path))119 @extensions[name] = Extension.new(path)120 end121 def native_events?122 @native_events == true123 end124 def load_no_focus_lib?125 @load_no_focus_lib == true126 end127 def secure_ssl?128 @secure_ssl == true129 end130 def assume_untrusted_certificate_issuer?131 @untrusted_issuer == true132 end133 def assume_untrusted_certificate_issuer=(bool)134 @untrusted_issuer = bool135 end136 def proxy=(proxy)137 raise TypeError, "expected #{Proxy.name}, got #{proxy.inspect}:#{proxy.class}" unless proxy.is_a? Proxy138 case proxy.type139 when :manual140 self['network.proxy.type'] = 1141 set_manual_proxy_preference 'ftp', proxy.ftp142 set_manual_proxy_preference 'http', proxy.http143 set_manual_proxy_preference 'ssl', proxy.ssl144 set_manual_proxy_preference 'socks', proxy.socks145 self['network.proxy.no_proxies_on'] = proxy.no_proxy || ''146 when :pac147 self['network.proxy.type'] = 2148 self['network.proxy.autoconfig_url'] = proxy.pac149 when :auto_detect150 self['network.proxy.type'] = 4151 else152 raise ArgumentError, "unsupported proxy type #{proxy.type}"153 end154 end155 def encoded156 Zipper.zip(layout_on_disk)157 end158 private159 def set_manual_proxy_preference(key, value)160 return unless value161 host, port = value.to_s.split(':', 2)162 self["network.proxy.#{key}"] = host163 self["network.proxy.#{key}_port"] = Integer(port) if port164 end165 def install_extensions(directory)166 destination = File.join(directory, 'extensions')167 @extensions.each do |name, extension|168 WebDriver.logger.debug({extenstion: name}.inspect)169 extension.write_to(destination)170 end171 end172 def read_model_prefs173 return {} unless @model174 read_user_prefs(File.join(@model, 'user.js'))175 end176 def delete_extensions_cache(directory)177 FileUtils.rm_f File.join(directory, 'extensions.cache')178 end179 def delete_lock_files(directory)180 %w[.parentlock parent.lock].each do |name|181 FileUtils.rm_f File.join(directory, name)182 end...
platform.rb
Source:platform.rb
...30 :linux31 when /solaris|bsd/32 :unix33 else34 raise Error::WebDriverError, "unknown os: #{host_os.inspect}"35 end36 )37 end38 def bitsize39 @bitsize ||= (40 if defined?(FFI::Platform::ADDRESS_SIZE)41 FFI::Platform::ADDRESS_SIZE42 elsif defined?(FFI)43 FFI.type_size(:pointer) == 4 ? 32 : 6444 elsif jruby?45 Integer(ENV_JAVA['sun.arch.data.model'])46 else47 1.size == 4 ? 32 : 6448 end49 )50 end51 def jruby?52 engine == :jruby53 end54 def ironruby?55 engine == :ironruby56 end57 def ruby187?58 !!(RUBY_VERSION =~ /^1\.8\.7/)59 end60 def ruby19?61 !!(RUBY_VERSION =~ /^1\.9/)62 end63 def windows?64 os == :windows65 end66 def mac?67 os == :macosx68 end69 def linux?70 os == :linux71 end72 def cygwin?73 !!(RUBY_PLATFORM =~ /cygwin/)74 end75 def null_device76 @null_device ||= (77 if defined?(File::NULL)78 File::NULL79 else80 Platform.windows? ? 'NUL' : '/dev/null'81 end82 )83 end84 def wrap_in_quotes_if_necessary(str)85 windows? && !cygwin? ? %{"#{str}"} : str86 end87 def cygwin_path(path, opts = {})88 flags = []89 opts.each { |k,v| flags << "--#{k}" if v }90 `cygpath #{flags.join ' '} "#{path}"`.strip91 end92 def make_writable(file)93 File.chmod 0766, file94 end95 def assert_file(path)96 unless File.file? path97 raise Error::WebDriverError, "not a file: #{path.inspect}"98 end99 end100 def assert_executable(path)101 assert_file(path)102 unless File.executable? path103 raise Error::WebDriverError, "not executable: #{path.inspect}"104 end105 end106 def exit_hook(&blk)107 pid = Process.pid108 at_exit do109 yield if Process.pid == pid110 end111 end112 def find_binary(*binary_names)113 paths = ENV['PATH'].split(File::PATH_SEPARATOR)114 binary_names.map! { |n| "#{n}.exe" } if windows?115 binary_names.each do |binary_name|116 paths.each do |path|117 exe = File.join(path, binary_name)...
selenium_extensions.rb
Source:selenium_extensions.rb
...8 Selenium::WebDriver::Element.instance_methods(false) +9 Selenium::WebDriver::SearchContext.instance_methods -10 %i[11 initialize12 inspect13 ==14 eql?15 hash16 ref17 to_json18 as_json19 ]20 ).each do |method|21 define_method(method) do |*args|22 with_stale_element_protection do23 super(*args)24 end25 end26 end27 def with_stale_element_protection28 yield29 rescue Selenium::WebDriver::Error::StaleElementReferenceError30 raise unless finder_proc31 location = CallStackUtils.best_line_for($ERROR_INFO.backtrace)32 $stderr.puts "WARNING: StaleElementReferenceError at #{location}, attempting to recover..."33 @id = finder_proc.call.ref34 retry35 end36 end37 module PreventEarlyInteraction38 attr_accessor :ready_for_interaction39 (40 Selenium::WebDriver::Driver.instance_methods(false) +41 Selenium::WebDriver::SearchContext.instance_methods -42 %i[43 initialize44 inspect45 switch_to46 manage47 get48 title49 close50 quit51 execute_script52 execute_async_script53 browser54 ]55 ).each do |method|56 define_method(method) do |*args|57 raise Error, 'need to do a `get` before you can interact with the page' unless ready_for_interaction58 super(*args)59 end60 end61 end62 module FinderWaiting63 def find_element(*args)64 FinderWaiting.wait_for method: :find_element do65 super66 end or raise Selenium::WebDriver::Error::NoSuchElementError, "Unable to locate element: #{args.map(&:inspect).join(", ")}"67 end68 alias first find_element69 def find_elements(*args)70 result = []71 FinderWaiting.wait_for method: :find_elements do72 result = super73 result.present?74 end75 result.present? or raise Selenium::WebDriver::Error::NoSuchElementError, "Unable to locate element: #{args.map(&:inspect).join(", ")}"76 result77 end78 alias all find_elements79 class << self80 attr_accessor :timeout81 def wait_for(method:, timeout: self.timeout, ignore: nil)82 return yield if timeout == 083 prevent_nested_waiting(method) do84 Selenium::WebDriver::Wait.new(timeout: timeout, ignore: ignore).until do85 yield86 end87 end88 rescue Selenium::WebDriver::Error::TimeOutError89 false...
selenium_webdriver_phantomjs_monkey_patch.rb
Source:selenium_webdriver_phantomjs_monkey_patch.rb
...22Selenium::WebDriver::PhantomJS::Service.class_eval do23 def start(args = [])24 require 'selenium/webdriver/common'25 if @process && @process.alive?26 raise "already started: #{@uri.inspect} #{@executable.inspect}"27 end28 puts "Starting monkey-patched PhantomJS Selenium Webdriver"29 # @process = create_process(args)30 # @process.start31 socket_poller = Selenium::WebDriver::SocketPoller.new Selenium::WebDriver::Platform.localhost, @uri.port, Selenium::WebDriver::PhantomJS::Service::START_TIMEOUT32 unless socket_poller.connected?33 raise Selenium::WebDriver::Error::WebDriverError, "unable to connect to phantomjs @ #{@uri} after #{Selenium::WebDriver::PhantomJS::Service::START_TIMEOUT} seconds"34 end35 Selenium::WebDriver::Platform.exit_hook { stop } # make sure we don't leave the server running36 end37end...
inspect
Using AI Code Generation
1element = driver.find_element(:name, 'q')2element = driver.find_element(:name, 'q')3element = driver.find_element(:name, 'q')4element = driver.find_element(:name, 'q')5element = driver.find_element(:name, 'q')6element = driver.find_element(:name, 'q')7element = driver.find_element(:name, 'q')
inspect
Using AI Code Generation
1element = driver.find_element(:name, 'q')2element = driver.find_element(:name, 'q')3element = driver.find_element(:name, 'q')4element = driver.find_element(:name, 'q')5element = driver.find_element(:name, 'q')6element = driver.find_element(:name, 'q')7element = driver.find_element(:name, 'q')
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!!