I am trying to run a selenium test with selenium side runner on firefox browser through geckodriver:
selenium-side-runner -c "browserName= firefox moz:firefoxOptions.args=[-headless]" test.side
but i keep running into the below error:
WebDriverError: Reached error page: about:neterror?e=netTimeout&u=https%3A//abcdef.com/&c=UTF-8&d=The%20server%20at%20abcdef.com%20is%20taking%20too%20long%20to%20respond.
I have tried downgrading firefox and geckodriver versions but still no solution.
Currently using
firefox version -> 99.0.1
geckodriver version-> 0.30.0
selenium-side-runner version-> 3.17.0
Suddenly on the afternoon of January 6, 2021, my Selenium Protractor tests under OSX stopped working with the mysterious error
spawn Unknown system error -86
I did some research and discovered that error number 86 is the same as
Bad CPU type in executable
and ran the following to compare the cpu architecture of my chromedriver binary to my system:
% file chromedriver_87.0.4280.88
chromedriver_87.0.4280.88: Mach-O 64-bit executable arm64
% uname -a
Darwin kobl179273m 19.6.0 Darwin Kernel Version 19.6.0: Thu Oct 29 22:56:45 PDT 2020; root:xnu-6153.141.2.2~1/RELEASE_X86_64 x86_64
% uname -p
i386
How can I fix the chromedriver binary used by my Selenium so that it will run on my Intel x64 mac and clear the "system error -86" or "Bad CPU type" message?
The issue is described in https://github.com/angular/webdriver-manager/issues/476.
This has been now fixed in 12.1.8 so just update to that webdriver manager.
For most users this can be accomplished with
npm uninstall protractor && npm install protractor
Edit: this answer should be considered deprecated now that the underlying bug in webdriver-manager has been fixed. A better solution would be to upgrade to the newest version of webdriver-manager. The answer below may be useful if people need to use an older version of webdriver-manager which still has the bug.
As per Deepak Srinivasan's comment above, this error is caused by https://github.com/angular/webdriver-manager/issues/476
Root Cause:
The ChromeDriver team added "_m1" to the end of the filename for their Apple Silicon ARM builds of Chromedriver -- but both the Silicon and Intel versions of chromedriver have "mac64" in the filename, and the version number is exactly the same. This causes webdriver-manager to always download the Silicon build of Chromedriver, even on Intel macs. As a general solution, simply avoid using the chromedriver that has _m1 in its filename if you are on an Intel mac.
Solution 1: Downgrade to Chrome 86.0.4240.198 and Chromedriver 86.0.4240.22. These versions work together and are the most recent versions prior to the new and problematic support for Silicon ARM
Chrome 86 download page:
https://google-chrome.en.uptodown.com/mac/download/2920124
Disable auto-updates in Chrome: https://superuser.com/questions/1359017/how-do-i-disable-automatic-updates-of-google-chrome-on-mac-os-x
Chromedriver 86: https://chromedriver.storage.googleapis.com/index.html?path=86.0.4240.22/
% webdriver-manager update --versions.chrome=86.0.4240.22
Solution 2: Modify the webdriver-manager npm package to point to the correct chromedriver (thanks to ciekaway from the angular github issue page for this fix)
Modify the following file
node_modules/webdriver-manager/built/lib/files/file_manager.js
or, if using protractor
node_modules/protractor/node_modules/webdriver-manager/built/lib/files/file_manager.js
Near the top of the downloadFile method around line 166, add the following line to remove "_m1" from the name of the file:
fileUrl.url = fileUrl.url.replace(/_m1/, '');
It needs to be after the beginning of the .then block that starts with
binary.getUrl(binary.version()).then(fileUrl => {
it also needs to be before the next reference to fileUrl.
For example:
binary.getUrl(binary.version()).then(fileUrl => {
binary.versionCustom = fileUrl.version;
fileUrl.url = fileUrl.url.replace(/_m1/, '');
let filePath = path.resolve(outputDir, binary.filename());
Note that this solution is temporary. It will be overwritten by an npm install. The Chromedriver and/or the webdriver-manager team will probably fix this issue, at which point you should clear the modified version of your webdriver-manager and download the fix from npm.
For macOS Catalina Version 10.15.6 (19G73)
In my case I was working with Rails and Capybara for feature tests. What worked for me was
First, find the actual chromedriver location running:
which chromedriver
# Which returned:
/Users/alex/.webdrivers/chromedriver
Then, install chromedriver via Homebrew:
brew install chromedriver
Then, remove old chromedriver reference found at previous location with:
rm /Users/alex/.webdrivers/chromedriver
Now, link the old chromedriver reference to the one installed with brew:
ln -s /usr/local/bin/chromedriver /Users/alex/.webdrivers/chromedriver
Then, open Finder app, then click on Go menu and then click Go to folder ... option, and enter this route:
/usr/local/Caskroom/chromedriver/
There you should see a folder with the chromedriver version you have installed, something like this:
88.0.4324.96
Enter that folder and you should see the chromedriver binary file.
Right click on it, and click on Open
Now, you should get a terminal window popping up with the output:
Last login: Sun Jan 31 12:29:15 on ttys001
/usr/local/Caskroom/chromedriver/88.0.4324.96/chromedriver ; exit;
~ /usr/local/Caskroom/chromedriver/88.0.4324.96/chromedriver ; exit;
Starting ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b- refs/branch-heads/4324#{#1784}) 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.
Finally, press Ctrl+C to stop the execution and quit the terminal window.
Now, you should be able to run capybara tests.
npm uninstall protractor && npm install protractor
If you use webdrivers gem, upgrade it:
bundle update webdrivers
I'm currently installing emsdk. I was just following the tutorial in their site but got stuck at this command:
./emsdk install latest
Here is the output:
Installing SDK 'sdk-1.38.0-64bit'..
Installing tool 'clang-e1.38.0-64bit'..
The contents of file 'llvm/tag/osx_64bit/emscripten-llvm-e1.38.0.tar.gz' already exist in destination '/Users/user1/Desktop/emsdk/clang/e1.38.0_64bit', skipping.
Done installing tool 'clang-e1.38.0-64bit'.
Installing tool 'node-8.9.1-64bit'..
The contents of file 'node-v8.9.1-darwin-x64.tar.gz' already exist in destination '/Users/user1/Desktop/emsdk/node/8.9.1_64bit', skipping.
Done installing tool 'node-8.9.1-64bit'.
Installing tool 'emscripten-1.38.0'..
Error downloading URL 'https://github.com/kripken/emscripten/archive/1.38.0.tar.gz': <urlopen error [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590)>
Installation failed!
I already tried upgrading to Python 3 from Python 2.7 as well as upgraded my OpenSSL as per suggestion of some posts here. How can I fix this?
I ran into the same problem. I tried updating openssl on MacOS and using a newer version of python, but it still didn't work.
A hacky work around that worked for me is to download the failing file manually into the zips folder.
For example
cd zips
wget https://github.com/kripken/emscripten/archive/1.38.0.tar.gz
Then try to install again and it should work.
The upgrade of chromedriver to 2.25, or Chrome to version 54 has caused the following error:
'unknown error: cannot find Chrome binary'. The location of Chrome has not changed, but it seems that the chromedriver is not looking in a different location? I'm running this using a VM (locally is fine with any versioning)
I've tried adding the following to my protractor-config, but this does not have any affect on the error.
capabilities: {
browserName: 'chrome',
chromeOptions:'binary': 'C:/Program Files (x86)/Google/Chrome/Application/Chrome.exe'},
},
Is there anything else I can try? How do I find the path that the chromedriver is currently looking for the binary?
Any help would be greatly appreciated!
You must upgrade to chromedriver. That is the issue.
Chrome Driver for Windows
Hope this helps. :)
I'm using CentOS Linux release 6.0 (Final) but unable install given package
1) rpm -ivh oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.rpm
Whenever i install package,I got following error
error: Failed dependencies:
oracle-instantclient11.2-basic >= 11.2.0.1.0 is needed by oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64
2)rpm -ivh oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.rpm
Whenever i install package,I got following error
error: Failed dependencies:
oracle-instantclient11.2-basic >= 11.2.0.1.0 is needed by oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64
From the instant client information page:
Installation Instructions
Installation Steps:
Download the appropriate Instant Client packages for your platform. All installations REQUIRE the Basic or Basic Lite package.
...
That is referring to the .zip version, but the same will apply to the .rpm version.
So you need to get and install the oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm or oracle-instantclient11.2-basiclite-11.2.0.1.0-1.x86_64.rpm (Basic Lite: Smaller version of the Basic, with only English error messages and Unicode, ASCII, and Western European character set support) before you can install the -devel- package on top.
Kind of curious that you're installing the 11.2.0.1 version (or 11.2.0.3 from your first error message, despite the command you showed) when more recent versions are available. I assume you're getting your .rpm files from the download site. I'd get the 11.2.0.4 version, if not the 12.0.0.1 version, unless you have a specific reason to stick to an older one. I would get the same version for basic and devel though, despite the message suggesting they don't have to match. So oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm (or basiclite) if you're sticking with oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm.