Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Will Selenium work on Ubuntu with no GUI [duplicate]

I'm using Codeception on various cloud platforms like Amazon AWS and Cloud 9. Neither of which has a GUI by default. My question is, can you run Selenium on this type of system? Or do I need to somehow get a GUI?

like image 919
Jim Maguire Avatar asked Dec 17 '15 19:12

Jim Maguire


People also ask

Can Selenium run without GUI?

We can run Selenium (Firefox) webdriver without a GUI. This means that the execution has to be kicked in headless mode. The headless execution is popular now since it results in less consumption of resources.

Does Selenium work on Ubuntu?

Selenium is an open-source tool or framework that helps testers or developers to run automated tests on web-browser. You can run selenium on Windows,macOS, and Linux.

Does Selenium have a GUI?

Conclusion: Selenium drives the testing using the driver object that identifies the elements on screen using id, xpath etc. Through these functions, we can identify GUI objects of web applications through selenium web driver.

Does Selenium work on Linux?

Installing Selenium Tools on LinuxJava must be installed on your computer. Install Oracle Java 8 or OpenJDK with the command below. Step 2: Install Google Chrome. Using the commands shown below, install the most recent Google Chrome package on your PC.


1 Answers

Selenium is only a library, and as such it does not particularly care if you are running it on a system that is equipped with a GUI. What you are probably asking is: If I use Selenium to open a browser, is that browser going to work on a system with no GUI. The answer to this is: it depends!

There are headless browsers: browsers that also do not have a GUI component. HtmlUnit is packaged with Selenium. Another popular browser is PhantomJS, which has third-party Selenium bindings library called GhostDriver. Personally I would avoid both of these! HtmlUnit uses a JavaScript engine that none of the current desktop browsers support, and as such the tests are not very reliable. GhostDriver has not been maintained for 2 years, and as such also makes for unreliable results. PahntomJS is definitely an option, as it uses WebKit - the engine that is in Safari and Chrome browsers, but you would have to write your own API.

Most systems will allow you to have a virtual GUI. You mentioned Ubuntu, which is a Debian derivative. There are several tutorials on the Net that tell you how to install Xvfb, most of which are incomplete or wrong. On a Debian you install a headless browser like this:

  1. Install Xvfb: apt-get install xvfb
  2. Install a browser. Assuming you are using a Debian server, you will not be able to install something like Firefox with apt-get, because the repositories are not present. Instead Google something like "Firefox off-line install", or whatever browser you want to use, and then use wget on your server to grab the package.
  3. Unpack the package somewhere like /usr/local/lib, and then create a soft link from /usr/local/bin to the binary that launches the browser.
  4. Now try launching your browser headless. For example, for Firefox you would try: xvfb-run firefox. This may produce some errors, which you have to fix. In my case, I was missing the library libdbus-glib-1-2 which I could install just using apt-get.
  5. At this point you will need to launch Xvfb before running your Selenium tests. Most CI servers have a plugin for Xvfb, or you can do it from the command line: Xvfb :99 &. See the docs for additional information.
like image 68
SiKing Avatar answered Oct 26 '22 18:10

SiKing