remove parallels binding to a command line open app command - osx-yosemite

I'm trying to open google chrome mac with disabled security with the command line
open -a Google\ Chrome --args --disable-web-security
However it keeps opening up parallels windows chrome instead - how do I remove the parallels binding for chrome so that it doesn't open from mac terminal?

Use the full path to the application:
open -a /Applications/Google\ Chrome --args --disable-web-security
Parallels creates folders in ~/Applications for each virtual machine. These folders contain aliases for applications on the virtual machine. My guess is that the command "open -a" is searching the folder ~/Applications before searching the folder /Applications. This is probably desired behavior in many cases - open would find the application installed for the user before finding the application installed system-wide. However, it's causing some confusion in this case.
I couldn't find documentation explaining which path "open" is actually searching, so this is just a guess. However, specifying the full path to the application works for me.

I had this issue while trying to launch the Chrome debugging tools from React Native. Because React was launching the app I couldn't adjust the command it issues as described in the accepted answer.
I fixed it by changing the bundle name in the Parallels application package so it was different than the Mac Chrome version. To do this find the application package for Chrome in Parallels - I found mine in ~/Applications (Parallels).
Right-click on the Chrome application in Finder and select Show Package Contents. Under the Contents folder you should find a Info.plist file. Open this in a text editor and modify the string value for the CFBundleName key to something else (I used "Google Chrome Win").
Save the file and the open command should launch the Mac version of Chrome as expected from then on.

Related

Windows Desktop doesn't show up on WSL

I just recently set up WSL with Ubuntu 18.04 on my new windows computer. I know that to access my windows files from the linux side, the C:\ drive is mapped to /mnt/c. When I try to cd to /mnt/c/Users/malik22/Desktop, however, I get a No such file or directory error. I access my window Downloads, Documents, etc. just fine from the linux side, but for some reason Desktop seems to be the only one not present.
I've been using WSL for over a year now on my old computer and have never run into this issue. Any ideas?
If your Desktop is backed up in your OneDrive it won't show up in your user directory.
You can either create a symbolic link as mentioned below by #raghav-malik or else choose to not back up your Desktop (you can instead back up your Documents directory).

Ubuntu (store version) - path for console emulators

I've currently moved from old WSL which was called Bash to Ubuntu from windows store. I'm using it along with ConEmu terminal emulator. To configure this two together, I need to specify ubuntu.exe path in conemu, but I can't find it, do you know where's it installed ? For instance, before it was C:\Windows\system32\bash.exe
Execute where ubuntu command in cmd to find correct path.
for example:
C:\Users\USERNAME\AppData\Local\Microsoft\WindowsApps\ubuntu.exe

Run Selenium Application on different machine than where it was created

I have developed a Console App using VS2015 which uses Selenium WebDriver to test some websites.
I now want to install this app onto a server and run it there.
I have already installed the app on the server, but when I try to run it, I get an error saying that "Firefox binary couldn't be found in PATH or default". Firefox is installed in the default path C:\Program Files\Mozilla.
Have you got any suggestions on this? Do I need to install any part of Selenium on the server? (Selenium Standalone Server for example)
The server is running Windows Server 2012 R2
Looks like it's unable to find the Firefox binary on its own. So you have to specify the binary of Firefox explicitly. Use the below code to find the Firefox binary
FirefoxBinary binary = new FirefoxBinary(new File("path/to/binary"));
FirefoxProfile profile = new FirefoxProfile();
WebDriver driver = new FirefoxDriver(binary, profile);
What I would recommend is for you to be using Firefox binary in your test suites and call the path of the executable from a properties file so that you don't have to compile all of your test cases again.
The issue was actually caused by the environment variable %PATH%. The variable didn't contain the path for Firefox default installation, which is
C:\Program Files\Mozilla Firefox
To fix the problem, I simply added that path to the environment variable %PATH% (you can find it by clicking Start, typing "environment variables", and clicking on "Environment Variables..." button on the bottom right of the System Properties tab that open when you look for "environment variables" in the Start menu.
That solved the issue.
Thank you Khaja for you answer anyways.

Can I run multiple versions of Google Chrome on the same machine? (Mac or Windows)

This fabulous answer suggests there’s no way to run multiple versions of Google Chrome on one machine.
Every now and then you’ll get a website user stuck on an old version of Chrome (no idea how, but it happens — maybe they installed the standalone version?) with an issue, and you need to be able to verify it. Bit difficult to do that without their browser version around.
Does anyone know if there’s actually a way to do this? I.e.
Obtain an installer for an older version of Google Chrome (Google seems to keep very quiet about versions, which is great for users, less great for developers trying to support old versions)
Run two versions of Google Chrome on one machine
In the comments, I mentioned a step-by-step method to easily install multiple Chrome versions, side-by-side. This answer quotes my original answer, and includes a script which does the job for you.
Quoted from: section 7 of Cross-browser testing: All major browsers on ONE machine:
Chrome: Stand-alone installers can be downloaded from File Hippo. It is also possible to run multiple Chrome versions
side-by-side.
Although Sandboxie can be used, it's
recommended to use the next native method in order to run multiple
versions side-by-side.
Download the desired version(s) from File Hippo.
Create a main directory, e.g. C:\Chrome\.
Extract the installer (=without installing), using 7-Zip for example. After extracting, a chrome.7z archive is
created. Also extract this file, and descend the created Chrome-bin
directory. Now, you see chrome.exe and a dir like 18.0.1025.45.
Move chrome.exe to 18.0.1025.45, then move this directory to
C:\Chrome. The remaining files in Chrome-bin can safely be
deleted.
Create a shortcut for each version:
"C:\Chrome\18.0.1024.45\chrome.exe" --user-data-dir="..\User Data\18" --chrome-version=18.0.1025.45
Explanation of this shortcut:
"C:\Chrome\18.0.1024.45\chrome.exe" • This is the
launcher
--user-data-dir="..\User Data\18" • User profile, relative to the location of chrome.exe. You could also have
used --user-data-dir="C:\Chrome\User Data\18" for the same effect.
Set your preferences for the lowest Chrome version, and duplicate the User profile for each Chrome version. Older Chrome versions
refuse to use User profiles from new versions.
--chrome-version=18.0.1025.45 • Location of binaries:
* The location (eg `18.0.1025.45`) must be the name of the directory:
* Must start and end with a number. A dot may appear in between.
* The numbers do not necessarily have to match the real version number (though it's convenient to use real version numbers...).
Regarding configuration: All preferences can be set at
chrome://settings/. I usually change the home page and "Under the
hood" settings.
Disable auto-updates: http://dev.chromium.org/administrators/turning-off-auto-updates
(the old version of this answer referred to Old Apps for old Chrome versions, but they do not offer direct download links any more through the UI. The files do still exist, I've created a shell script (bash) to ease the creation of a local repository of Chrome versions - see https://gist.github.com/Rob--W/8577499)
##VBScript which automates install, config & launch
I've created a VBScript which installs and configures Chrome (tested in XP and Windows 7). Launch the script, and a file dialog appears (or: Drag & drop the chrome installer on the VBS). Select the destination of the Chrome installer, and the script automatically unpacks the files and duplicates the profile from a pre-configured base directory.
By default:
The Chrome binaries are placed in subfolders of C:\Chrome\.
The User profiles are created in C:\Chrome\User Data\.
The user profiles will be duplicated from the directory as specified in the sFolderChromeUserDataDefault variable, which is C:\Chrome\User Data\2\ by default.
After the first Chrome installation, set your preferences (Home page, bookmarks, ..). Then modify the variable (see 3.) in the source code. After that, installing and configuring Chrome is as easy as pie.
The only dependency is 7-zip, expected to be located at C:\Program Files\7-zip\7z.exe.
I adopted #RobW's nice answer to get it working on Mac OS X 10.8. Other versions of Mac OS X may probably work too.
The little extra work is actually only needed to keep your original Google Chrome user settings and the old version separated.
Download another version of Google Chrome, like the Dev channel and extract the .app file
(optional) Rename it to Google Chrome X.app – if not already different from Google Chrome.app
(Be sure to replace X for all following steps with the actual version of Chrome you just downloaded)
Move Google Chrome X.app to /Applications without overwritting your current Chrome
Open the Terminal, create a shell script and make your script executable:
cd /Applications
touch google-chrome-version-start.sh
chmod +x google-chrome-version-start.sh
nano google-chrome-version-start.sh
Modify the following code according to the version you downloaded and paste it into the script
#!/usr/bin/env bash
/Applications/Google\ Chrome\ X.app/Contents/MacOS/Google\ Chrome\ X --user-data-dir="tmp/Google Chrome/X/" & disown
For example for Dev Channel:
#!/usr/bin/env bash
/Applications/Google\ Chrome\ Dev.app/Contents/MacOS/Google\ Chrome\ Dev --user-data-dir="tmp/Google Chrome Dev/" & disown
(This will store Chrome's data at ~/tmp/Google Chrome/VERSION/. For more explanations see the original answer.)
Now execute the script and be happy!
/Application/google-chrome-version-start.sh
Tested it with Google Chrome 88 on a Mac running OS X 10.15 Catalina
Your mileage may vary (mine sure did), but here's what worked for me (current version of Chrome as of this post is 33.x, and I was interested in 24.x)
Visit the Chromium repo proxy lookup site: http://omahaproxy.appspot.com/
In the little box called "Revision Lookup" type in the version number. This will translate it to a Subversion revision number. Keep that number in mind.
Visit the build repository: http://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html
Select the folder corresponding to the OS you're interested in (I have Win x64, but had to use Win,because there was no x64 build corresponding to the version I was looking for).
If you select Win, you could be in for a wait - as some of the pages have a lot of entries. Once the page loads, scroll to the folder containing the revision number you identified in an earlier step. If you don't find one, choose the next one up. This is a bit of trial and error to be honest - I had to back up about 50 revisions until I found a version close to the one I was looking for
Drill into that folder and download (on the Win version) chrome-win32.zip. That's all you need.
Unzip that file and then run chrome.exe
This worked for me and I'm running the latest Chrome alongside version 25, without problems (some profile issues on the older version, but that's neither here nor there). Didn't need to do anything else.
Again, YMMV, but try this solution first since it requires the least amount of tomfoolery.
For those who don't care if it's "Google Chrome", I suggest using "Chromium" instead.
See: Download Chromium
Look in http://googlechromereleases.blogspot.com/search/label/Stable%20updates for the last time "44." was mentioned.
Loop up that version history ("44.0.2403.157") in the Position Lookup
In this case it returns a base position of "330231". This is the commit of where the 44 release was branched, back in May 2015.*
Open the continuous builds archive
Click through on your platform (Linux/Mac/Win)
Paste "330231" into the filter field at the top and wait for all the results to XHR in.
Eventually I get a perfect hit: https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Mac/330231/
Sometimes you may have to decrement the commit number until you find one.
Download and run!
Though this seems to be an old question with many answers I'm posting another one, because it provides information about another approaches (looking more convenient than already mentioned), and the question itself remains actual.
First, there is a blogpost Running multiple versions of Google Chrome on Windows. It describes a method which works, but has 2 drawbacks:
you can't run Chrome instances of different versions simultaneously;
from time to time, Chrome changes format of its profile, and as long as
2 versions installed by this method share the same directory with
profiles, this may produce a problem if it's happened to test 2 versions
with incompatible profile formats;
Second method is a preferred one, which I'm currently using. It relies on portable versions of Chrome, which become available for every stable release at the portableapps.com.
The only requirement of this method is that existing Chrome version should not run during installation of a next version. Of course, each version must be installed in a separate directory. This way, after installation, you can run Chromes of different versions in parallel. Of course, there is a drawback in this method as well:
profiles in all versions live separately, so if you need to setup a profile in a specific way, you should do it twice or more times, according to the number of different Chrome versions you have installed.
A small virtual machine maybe?
Try VirtualBox a freeware program to install virtual machines (a lot of work for what you want to do, but it'll work)
I think I might have figured this out on Windows. You can run different versions of Chrome at the same time!
Do the following:
Copy over the version number directory into the usual c:\users\yourUser\appdata\local\google\chrome\application directory (I am assuming you had a backup of the older chrome version directory before the update occurred)
Copy over the chrome.exe from the older version as a new name such as chrome_custom.exe
Run chrome as chrome_custom.exe --chrome-version=olderVersion --user-data-dir=newDir
That's it! I use this method to run automated test on Chrome with Selenium, until selenium catches up and works well with the latest Chrome.
As professional testers, my friends use Spoon.net browsers section to test compatibility of site in various browsers. Hope this should help you.
I have done the following on a Citrix XenDesktop VM, however you could just do this on your local PC:
Microsoft Virtual PC
If you are running Windows 7, you can download Microsoft virtual PC and create as many copies of Virtual PC as you need for testing without any licensing issues:
http://www.microsoft.com/windows/virtual-pc/default.aspx
This requires no additional Windows licenses; you simply set up multiple machines with different browsers on them. You can run the browsers out of the window by following the tutorial available here:
http://ieblog.members.winisp.net/images/InstallingXPMode.htm
Installing Browsers
You will need to create at least 3 virtual PC's (tip: keep the memory down to 256mb for each virtual PC to avoid wasting memory on the virtual desktops).
On the first VPC I installed this:
http://tredosoft.com/Multiple_IE
along with Chrome 1, Safari 3.1, Opera 8.
On the second I installed Internet Explorer 7, Chrome 3, Safari 3.2.1, Opera 9.
On the third I installed Internet Explorer 8, Chrome 8. Safari 4.0.5, Opera 10.
On Windows 7 (native machine) I had Internet Explorer 9, Chrome 11, Safari 5, Opera 11 and for Firefox I install the following app natively too:
http://utilu.com/UtiluMFC/
Personally I would not go back further than 5 years with compatibility (other than IE for government networks) unless you have a specific requirement (I split Chrome & Opera across years as I decided there were just to many releases). However, if you find that someone has a specific issue with a site using a specific version of the browser it becomes very easy to install additional virtual machines to run additional browser versions.
Obtaining Older Browsers
You can download older versions of Chrome from here:
http://www.oldapps.com/google_chrome.php
and Opera here:
http://www.oldapps.com/opera.php
Virtualizing The Test Platform (Optional)
I use Xen Desktop to virtualize the testing platform so that I can use it anywhere and have included my favorite development tools on there as well:
http://deliver.citrix.com/go/citrix/XenDesktop
The express edition is available for free.
A Good Commercial Alternative
Another great product I recently came accross is Stylizer which is a CSS editor that installs multiple versions of browsers for testing purposes, however this is a commercial paid for product but is very good and worth the small fee they require to run it.
I've recently stumbled upon the following solution to this problem:
Source: Multiple versions of Chrome
...this is registry data problem: How to do it then (this is an example for 2.0.172.39 and 3.0.197.11, I'll try it with next versions as they will come, let's assume I've started with Chrome 2):
Install Chrome 2, you'll find it Application Data folder, since I'm from Czech Republic and my name is Bronislav Klučka the path looks like this:
C:\Documents and Settings\Bronislav Klučka\Local Settings\Data aplikací\Google\Chrome
and run Chrome
Open registry and save
[HKEY_CURRENT_USER\Software\Google\Update\Clients\{8A69D345-D564-463c-AFF1-A69D9E530F96}]
[HKEY_CURRENT_USER\Software\Google\Update\ClientState\{8A69D345-D564-463c-AFF1-A69D9E530F96}]
keys, put them into one chrome2.reg file and copy this file next to chrome.exe (ChromeDir\Application)
Rename Chrome folder to something else (e.g. Chrome2)
Install Chrome 3, it will install to Chrome folder again and run Chrome
Save the same keys (there are changes due to different version) and save it to the chrome3.reg file next to chrome.exe file of this new version again
Rename the folder again (e.g. Chrome3)
the result would be that there is no Chrome dir (only Chrome2 and Chrome3)
Go to the Application folder of Chrome2, create chrome.bat file with this content:
#echo off
regedit /S chrome2.reg
START chrome.exe -user-data-dir="C:\Docume~1\Bronis~1\LocalS~1\Dataap~1\Google\Chrome2\User Data"
rem START chrome.exe -user-data-dir="C:\Documents and Settings\Bronislav Klučka\Local Settings\Data aplikací\Google\Chrome2\User Data"
the first line is generic batch command, the second line will update registry with the content of chrome2.reg file, the third lines starts Chrome pointing to passed directory, the 4th line is commented and will not be run.
Notice short name format passed as -user-data-dir parameter (the full path is at the 4th line), the problem is that Chrome using this parameter has a problem with diacritics (Czech characters)
Do 7. again for Chrome 3, update paths and reg file name in bat file for Chrome 3
Try running both bat files, seems to be working, both versions of Chrome are running simultaneously.
Updating:
Running "About" dialog displays correct version, but an error while checking for new one. To correct that do (I'll explain form Chrome2 folder):
1. rename Chrome2 to Chrome
2. Go to Chrome/Application folder
3. run chrome2.reg file
4. run chrome.exe
(works the same for Chrome3)
now the version checking works. There has been no new version of Chrome since I've find this whole solution up. But I assume that update will be downloaded to this folder so all you need to do is to update reg file after update and rename Chrome folder back to Chrome2. I'll update this post after successful Chrome update.
Bronislav Klucka
I have tried the various way to test one of a scenario which was chrome browser specific issue.
Best Solution a/c to me: Use Portable Versions
Step-0: Uninstall your currently installed Google Chrome
Go to Control Panel > Uninstall a program > Click Google Chrome > Uninstall
Step-1: Download the portable chrome version & Rename
Download the portable version of your choice from Portable Older Chrome Versions and save it instead of running it directly.
Go to downloaded file location and Rename the file to end with _online.paf.exe. Example:
Rename from google-chrome-portable-96-0-4664-93.exe to google-chrome-portable-96-0-4664-93_online.paf.exe
Step-2: Install the portable version
Click on the renamed exe file to continue with the installation.
When asked for Destination Folder path -> Rename it to match version (just to avoid conflict with other versions and identify) as shown below.
Step-3: Finally Run the downloaded version:
Go inside the portable installed folder and from there run GoogleChromePortable.exe like below.
Whoa!! This works. Thanks a lot to the creators of Portable Chrome Versions.
Rob W answer works if you can extract chrome.7z from the installer file, Unfortunately, the installer file is not extractable anymore, but you can find chrome.7z file in this address if you have installed chrome and it updated itself:
C:\Program Files (x86)\Google\Chrome\Application\95.0.4638.54\Installer
Or search your hard disk for chrome.7z file to find where Google stores update files for your OS.
After extraction as Rob W mentioned go to extracted folder and run new chrome with command:
.\chrome.exe --user-data-dir=".\User Data" --chrome-version=95.0.4638.54
Oldapps.com has old versions of Chrome available for download, and they’re the standalone versions, so combined with #SamMeiers’ answer, these work a treat.
The Google Chrome support forum has some good discussion of getting old versions of Chrome.

Selenium and HTTPS/SSL

I'm running selenium-rc 1.0.3 on a Mac OS X & Windows 7 and both seem to be giving my the annoying accept cert error in firefox. In reading the docs they say I should be able to just use the *firefox run mode and rc should take care of it for me via a proxy or something, but this appears to not work. The only solution that I was able to find on the internet was to create a skeleton profile and pass the path into the rc startup, but thats not a real option. As that doesn't solve problems of testing in IE/Chrome/Safari. Does any know of any other solution that will work.
Selenium-RC docs on HTTPS - http://seleniumhq.org/docs/05_selenium_rc.html#handling-https-and-security-popups
I have tried the solution given by this article (Thanks elliot) and it works well for me! Basically
1. Create a firefox profile:
a. Starting your firefox -ProfileManager (or firefox -P) in cmd.exe (make sure the firefox installation folder path is in your path environment variable, by default it should be just created when you installed firefox) and create a new profile.
b. Select this new profile to browse to the HTTPS URL and accept the self-signed certificate when prompted.
c. Go to the Firefox profile directory.
d. Delete everything in the directory except for the cert_override.txt and cert8.db files.
2. Run your selenium RC server using this profile:
such as java -jar selenium-server.jar -firefoxProfileTemplate c:/Firefox_Profile
If this is an issue with self-signed certificates, you could try using the RCE plugin for Firefox in a custom profile: http://sejq.blogspot.com/2009/01/remember-certificate-exception.html
Internet Explorer's warnings can be disabled through the advanced settings (specifics depend on the version of IE). Worth Googling around for a solution.
For Google Chrome I believe this is an unresolved issue related to: http://code.google.com/p/chromium/issues/detail?id=2010&can=5&colspec=ID%20Stars%20Pri%20Area%20Feature%20Type%20Status%20Summary%20Modified%20Owner%20Mstone%20OS