I have an issue with spy Browser mode in Firefox.
I have designed a new RPA process on Dev machine where I have spy in Browser mode (in firefox) web page.
On my Dev machine the Browser mode is working good and the process runs very good.
The issue is on production machine where the modeler don't see the elements which have been spied on dev machine.
Actions so far done.
We have set all settings regarding Firefox to the same like on dev machine using the BP guide,
We have installed the same Firefox extension on prod like on dev machine.
We have set the same internet options.
Non of the actions have helped us to be able to spy elements in Firefox on prod machine.
My questions to the experts community:)
What else could have impact on the BP - Browser mode which is stopping BP to see elements?
What virtual machine settings need to be set/or what to check?
We have BP Version 6:
Application Manager 6.4.2.10610
.Net Framework 4.7
Firefox version 72.0.2
Blue Prism Browser Extension version 6.4.2.10610vycoxormiz (updated 30. Jan. 2020)
Thank you for your help!
I found the solution.
During investigation I came on this link
[https://superuser.com/questions/719875/google-chrome-always-says-google-chrome-was-not-shut-down-properly][1]
In the location "%UserProfile%\AppData\Local\Google\Chrome\User Data\Default\Preferences
I have changed the "exit_type": "normal" to "exit_type": "standard" and immediate the
Browser mode on production machine was working and we could run the process.
It seems that the chrome when it wasn't shut down properly has impact on Blue Prism.
Adding update.
I have noticed that each time Chrome opens it changes in the Preferences file the status to Normal.
I have fixed the issue in that way, that I have added additional logic to my solution:
1. I have copied the Preferences file to a different location and changed in the file the status to Standard.
2. I have added additional logic to my process where bot copy the file from the new location and replace the file in the Chrome location each time he runs.
Hope this will help others with similar issue.
Regards!
Due to organization policy, the Chrome browser installation on my Windows Server machine is automatically updated. I have some processes that rely on python Selenium and chromedriver. Because of this, my process breaks whenever my org decides to push out an update.
Is it possible to have chromedriver depend on some binary other than Chrome browser that will not be managed by my organization so that this doesn't happen?
Few of the workarounds to resolve the issue:
We have kept the chrome exe file in an artifactory and we download and install that particular chrome version every time before our execution through automation (our requirement is like that).
As #Corey is suggesting you can webdrivermanager, PFB link for more details
https://github.com/bonigarcia/webdrivermanager
You can try Dockerized Selenium, there you'll have the control in the docker-compose.yml file.
In my current project, I require Firefox browser to be run in headless mode using Xvfb and Selenium. In order to maintain compatibility between Selenium and Firefox, I want to maintain both of them at a specific version and stop Firefox auto-upgrades.
Currently, I am installing Firefox by the following steps:
Downloading a specific version of Firefox (wget http://kickstart/redhat/enterprise/fupdates/5.4C/x86_64/firefox-31.6.0-2.0.el5amzn.x86_64.rpm).
Installing the downloaded version (rpm -i firefox-31.6.0-2.0.el5amzn.x86_64.rpm).
"app.update.auto", "app.update.enabled" and "app.update.silent" configuration parameters (in "about:config") of the Firefox profile are disabled by default.
Does that mean it would not be auto-updated? Is it the case with such types of installation?
Any recommendation would be helpful.
You can set these prefs in about:config to disable automatic updating:
app.update.auto - false
app.update.enabled - false
app.update.silent - false
You need to enter about:config in the address bar and then search for each pref in a list.
In linux, one solution is that after you download firefox and extract it (you can download tar from here).
Then change the owner and group to root, for example:
find .|xargs sudo chown root
find .|xargs sudo chgrp root
Because of the permission, firefox cannot update now
When installing Firefox, choose the customize radio button instead of default installation may be in 2nd or 3rd screen of the installation wizard and uncheck Mozilla/Firefox maintenance service. It will certainly work.
Good luck
There are 3 files under the installation directory (at least on windows. So I believe, similar files should be on linux as well).
1. updater.exe
2. updater.ini
3. update-settings.init
After removing these files, I was able to stop auto upgrade. Deleting these files will automatically change the auto update of firefox i.e. settings>advanced>Never check for update option as well.
Important: Remove these files before your first launch of the browser.
Hope this helps someone. :)
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.
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.