How to use null_device method of Platform Package

Best Selenium code snippet using Platform.null_device

platform.rb

Source: platform.rb Github

copy

Full Screen

...79 def cygwin?80 RUBY_PLATFORM =~ /​cygwin/​81 !Regexp.last_match.nil?82 end83 def null_device84 @null_device ||= if defined?(File::NULL)85 File::NULL86 else87 Platform.windows? ? 'NUL' : '/​dev/​null'88 end89 end90 def wrap_in_quotes_if_necessary(str)91 windows? && !cygwin? ? %("#{str}") : str92 end93 def cygwin_path(path, opts = {})94 flags = []95 opts.each { |k, v| flags << "--#{k}" if v }96 `cygpath #{flags.join ' '} "#{path}"`.strip97 end98 def make_writable(file)99 File.chmod 0o766, file100 end101 def assert_file(path)102 return if File.file? path103 raise Error::WebDriverError, "not a file: #{path.inspect}"104 end105 def assert_executable(path)106 assert_file(path)107 return if File.executable? path108 raise Error::WebDriverError, "not executable: #{path.inspect}"109 end110 def exit_hook111 pid = Process.pid112 at_exit { yield if Process.pid == pid }113 end114 def find_binary(*binary_names)115 paths = ENV['PATH'].split(File::PATH_SEPARATOR)116 if windows?117 binary_names.map! { |n| "#{n}.exe" }118 binary_names.dup.each { |n| binary_names << n.gsub('exe', 'bat') }119 end120 binary_names.each do |binary_name|121 paths.each do |path|122 full_path = File.join(path, binary_name)123 full_path.tr!('\\', '/​') if windows?124 exe = Dir.glob(full_path).find { |f| File.executable?(f) }125 return exe if exe126 end127 end128 nil129 end130 def find_in_program_files(*binary_names)131 paths = [132 ENV['PROGRAMFILES'] || '\\Program Files',133 ENV['ProgramFiles(x86)'] || '\\Program Files (x86)',134 ENV['ProgramW6432'] || '\\Program Files'135 ]136 paths.each do |root|137 binary_names.each do |name|138 exe = File.join(root, name)139 return exe if File.executable?(exe)140 end141 end142 nil143 end144 def localhost145 info = Socket.getaddrinfo 'localhost', 80, Socket::AF_INET, Socket::SOCK_STREAM146 return info[0][3] unless info.empty?147 raise Error::WebDriverError, "unable to translate 'localhost' for TCP + IPv4"148 end149 def ip150 orig = Socket.do_not_reverse_lookup151 Socket.do_not_reverse_lookup = true152 begin153 UDPSocket.open do |s|154 s.connect '8.8.8.8', 53155 return s.addr.last156 end157 ensure158 Socket.do_not_reverse_lookup = orig159 end160 rescue Errno::ENETUNREACH, Errno::EHOSTUNREACH161 # no external ip162 end163 def interfaces164 interfaces = Socket.getaddrinfo('localhost', 8080).map { |e| e[3] }165 interfaces += ['0.0.0.0', Platform.ip]166 interfaces.compact.uniq167 end168 end # Platform169 end # WebDriver170end # Selenium171if $PROGRAM_NAME == __FILE__172 p engine: Selenium::WebDriver::Platform.engine,173 os: Selenium::WebDriver::Platform.os,174 ruby_version: Selenium::WebDriver::Platform.ruby_version,175 jruby?: Selenium::WebDriver::Platform.jruby?,176 windows?: Selenium::WebDriver::Platform.windows?,177 home: Selenium::WebDriver::Platform.home,178 bitsize: Selenium::WebDriver::Platform.bitsize,179 localhost: Selenium::WebDriver::Platform.localhost,180 ip: Selenium::WebDriver::Platform.ip,181 interfaces: Selenium::WebDriver::Platform.interfaces,182 null_device: Selenium::WebDriver::Platform.null_device183end...

Full Screen

Full Screen

util.rb

Source: util.rb Github

copy

Full Screen

...63 return system(*(cmds << opt))64 rescue TypeError65 require 'thread'66 @silent_mutex ||= Mutex.new67 null_device = NULL_DEVICE68 @silent_mutex.synchronize do69 begin70 stdout = STDOUT.dup71 stderr = STDERR.dup72 STDOUT.reopen null_device, 'w'73 STDERR.reopen null_device, 'w'74 return system(*command)75 ensure76 STDOUT.reopen stdout77 STDERR.reopen stderr78 stdout.close79 stderr.close80 end81 end82 end83 ##84 # Enumerates the parents of +directory+.85 def self.traverse_parents directory, &block86 return enum_for __method__, directory unless block_given?87 here = File.expand_path directory...

Full Screen

Full Screen

null_device

Using AI Code Generation

copy

Full Screen

1file = File.open(Platform.null_device, "w")2file.write("Hello")3file = File.open(Platform.null_device, "w")4file.write("Hello")5file = File.open(Platform.null_device, "w")6file.write("Hello")7file = File.open(Platform.null_device, "w")8file.write("Hello")9file = File.open(Platform.null_device, "w")10file.write("Hello")11file = File.open(Platform.null_device, "w")12file.write("Hello")13file = File.open(Platform.null_device, "w")14file.write("Hello")15file = File.open(

Full Screen

Full Screen

null_device

Using AI Code Generation

copy

Full Screen

1file = File.open(Platform.null_device, "w")2file.write("Hello")3file = File.open(Platform.null_device, "w")4file.write("Hello")5file = File.open(Platform.null_device, "w")6file.write("Hello")7file = File.open(Platform.null_device, "w")8file.write("Hello")9file = File.open(Platform.null_device, "w")10file.write("Hello")11file = File.open(Platform.null_device, "w")12file.write("Hello")13file = File.open(Platform.null_device, "w")14file.write("Hello")15file = File.open(

Full Screen

Full Screen

StackOverFlow community discussions

Questions
Discussion

Running Selenium::WebDriver::Firefox inside Xvfb from ruby as NON-root user

Not able to run selenium with firefox, Capybara and Docker in headless mode

Why does Selenium Web Driver say Service Unavailable?

How to hover over an image using capybara and selenium

Setting the user agent in Firefox using geckodriver v0.11

Ruby selenium gem: open hyperlinks in multiple tabs

How to wait for the text of table row to change?

Writing a script to download files from a website? (Python, Selenium(?))

Data Driven Testing with Ruby&#39;s Test::Unit for Selenium

What are the ways to override a frozen variable in ruby?

  • SOLVED - EDIT * - sorry I couldn't ANSWER the question, but apparently my account is too new to do that just yet.

Solved! Amazing how things like this tend to solve themselves AFTER you've asked the question...

For those wanting to know why, there's a few things I needed to do...

1) Make sure the user in question has a working home directory (www-data didn't by default... its home dir was owned by root)

2) Start Xvfb from command line, and then start firefox from the command line (NOT from within the script) - this will populate the users home folder with the usual .dbus, .gconf etc folders

3) If you get a massive delay and then an error message along the lines of "an error occurred while loading or saving configuration information for firefox-bin", delete the .dbus folder in the users home directory

4) Try #2 again - if you had a config error before, it should now be gone.

5) Try running the script again.

This worked like a charm for me, so if you're having similar issues running Xvfb and watir-webdriver from within a web app, give it a try.

Thanks to all for contributing to what is hands-down the BEST Q&A site on the web... this place has saved my butt more times than I care to mention.

Note: the user originally entered this amended to their question, because they could not figure out how to post it as an answer. That was later edited out of the question by some well meaning person but never added as an answer.

https://stackoverflow.com/questions/5782055/running-seleniumwebdriverfirefox-inside-xvfb-from-ruby-as-non-root-user

Blogs

Check out the latest blogs from LambdaTest on this topic:

24 Things You Might Be Doing Wrong In Website Testing!

Website testing sounds simple, yet is complex, based on the nature of the website. Testing a single webpage is simple and can be done manually. But with the nature of web applications becoming complex day by day, especially in the current age of robust, dynamic single page applications that are developed using Angular or React, the complexity of testing is also increasing.

How To Measure Page Load Times With Selenium?

There are a number of metrics that are considered during the development & release of any software product. One such metric is the ‘user-experience’ which is centred on the ease with which your customers can use your product. You may have developed a product that solves a problem at scale, but if your customers experience difficulties in using it, they may start looking out for other options. Website or web application’s which offers better web design, page load speed, usability (ease of use), memory requirements, and more. Today, I will show you how you can measure page load time with Selenium for automated cross browser testing. Before doing that, we ought to understand the relevance of page load time for a website or a web app.

17 Skills Of Highly Effective Software Testers

Software testing is an essential process for developing the perfect app. But, as a software tester, it is essential to have certain skills which in turn will help with testing the applications better.

Top 11 JavaScript Frameworks For 2019

An extensive number of programming languages are being used worldwide today, each having its own purpose, complexities, benefits and quirks. However, it is JavaScript that has without any doubt left an indelible and enduring impression on the web, to emerge as the most popular programming language in the world for the 6th consecutive year.

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.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful