Linux machine with Firefix 52: I don't have geckoDriver.exe and Selenium tests stills runs fine - linux

I followed the steps according to this answer https://stackoverflow.com/a/43899952/7282061 and still could not run tests in windows 7 machine with Firefox 54.0.1 installed. It opened the browser but did not run tests without the Gecko driver.
But it worked without the Gecko driver in a Linux machine that had Firefox 52 and Selenium 2.52, irrespective of whether I set marionette to true or false in DesiredCapabilities!!! Can someone please explain? Selenium 2.52 supports newer Firefox versions without this geckoDriver?

Related

Install chrome driver on Amazon Linux 2 ARM

I am looking to install Chrome Driver (For my selenium project) on an Amazon Linux 2 (Arm 64).
I have done this on Ubuntu and seems pretty straight, it also seems straight on AL2 x86, like this script from Intoli but it 404 when looking for Chrome on ARM :(. So far I see Chrome is not available for ARM so I see the alternative is to use Chromium.
I tried installing it manually but it seems there is no compiled on Chromium downloads page for ARM.
Finally i found the Electron's unofficial webdrivers, which seem to be the answer, and after downloading, installing dependencies (libXcursor, libXfixes, libXdamage) and running it:
[ec2-user#scraping1 current]$ chromedriver
Starting ChromeDriver 100.0.4896.143 (6bf1afe83487405ea0aff37182f05e3db45559c2-refs/branch-heads/4951#{#831}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
And run my project I get:
2.7.3 :004 > Selenium::WebDriver::Service.driver_path = "/usr/bin/chromedriver"
=> "/usr/bin/chromedriver"
session = Capybara::Session.new
Webdrivers::BrowserNotFound: Failed to find Chrome binary.
Which means i don't have Chrome installed, but then how to install it? I have seen this question which seems to be my same problem but it is unclear to me how to install Chromium; I see it is needed to download and use the chromedriver compiled for ARM64 which I have done already.

Python 3 - selenium on xvfb-run- cannot process extension

I need to automate tasks to extract information from websites using the uBlock plugin with Chrome driver using the selenium module in Python 3.
I am running my code remotely without a GUI on the remote machine - for that I am using xvfb-run to simulate a desktop environment where Chrome launches with a specific window size.
The remote machine has the following Debian operating system:
uname -a
Linux mem 4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64 GNU/Linux
These were the steps I took to configure my environment and code on the remote machine:
1 - To configure my environment, I installed this version of Google Chrome:
google-chrome --version
Google Chrome 86.0.4240.111
2 - Check the versions of Python 3 and selenium I installed:
python --version
Python 3.7.3
pip freeze
selenium==3.141.0
3 - Check the xvfb-run version:
apt-cache policy xvfb
2:1.20.4-1+deb10u1
4 - With these packages configured, I obtained the chromedriver_linux64.zip from this list (the version 86.0.4240.22 below is the most recent one that is the same major version of the installed google-chrome):
https://chromedriver.storage.googleapis.com/index.html
https://chromedriver.storage.googleapis.com/index.html?path=86.0.4240.22/
5 - To be able to use the uBlock extension of Chrome, I needed to install an extension that is able to produce a .crx archive file of other installed extensions.
For this, I used CRX Extractor/Downloader:
https://chrome.google.com/webstore/detail/crx-extractordownloader/ajkhmmldknmfjnmeedkbkkojgobmljda
6 - After using that extension, I got my ublock.crx file to test.
I managed to use the binary in chromedriver_linux64.zip without the extension to launch a Chrome instance and do some basic crawling.
But when I tried to use ublock.crx in my code, I got an exception.
The code was this:
This is the exception produced:
ublock.crx error
selenium.common.exceptions.SessionNotCreatedException: Message: session not
created: cannot process extension #1
from unknown error: cannot unzip
I am launching it from my program like this:
from selenium import webdriver
option = webdriver.ChromeOptions()
option.add_extension(ublock_crx_file_path)
driver = webdriver.Chrome(executable_path=driver_path, options=option)
I have made sure the path of ublock_crx_file_path is valid and points to the file I obtained from Chrome.
Hopefully someone can shed light on this?

Firefox browser imports not working even gecko driver is used

I'm using Selenium 3.3.1 with Gecko driver to launch Firefox. I'm getting below error when i run my testng test.if i upgrade to 3.4.0 Firefox driver not working. imports not shown.
"java.lang.NoClassDefFoundError: com/google/common/base/Function" - Exception
Can some one please provide the exact code for launching Firefox latest with selenium 3.4

How to isolate an older version of chrome on linux

I need to run chrome 25 on my ubuntu saucy for testing of a web application. I don't want to replace my current version of chrome and was wondering if there is a simple way to isolate a program? I have ubuntu running in a chroot on my Chromebook pixel so nothing that requires kvm.

WebDriver Selenium API: FirefoxDriver on linux?

has anyone been successful in running tests using FirefoxDriver on a linux distro ? If so, which distro are you using ? Are you using xvfb ?
right now, I am thinking of simply using windows 2003 server, but it's a bit more expensive and I am more familiar with linux environment.
Ubuntu + Selenium-Webdriver + Firefox works fine for me.
Capybara + Selenium + Webdriver + Firefox works out-of-the-box. Using Archlinux here.
On CentOS 6 - firefox default distro & firefox updated version works fine.
I use ubuntu and it works fine for me. Check whether you are using the updated version of selenium server jar file, u can download it from here

Resources