Open Chrome from terminal with developer console open - shell

I can run Google Chrome from the command line using $ google-chrome, but what flag can I pass to open it with developer console already open, preferably open to the console tab?
I checked the man page for google-chrome but it states that
Google Chrome has hundreds of undocumented command-line flags that are added and removed at the whim of the developers.
I'm hoping one of those undocumented flags does what I want.

The flag you're looking for is --auto-open-devtools-for-tabs. Please note, that you should quit Chrome before this setting will take effect.
This has worked at least since Chrome 55.0.2883.87 m (the latest version as of initial post)

A Google employee maintains this list of automatically updated Chromium flags. There doesn't seem to be a flag for opening Chrome with developer console open.

Seems there is no such option. I added a feature request in Chrome product forum
https://productforums.google.com/forum/#!category-topic/chrome/give-feature-feedback-and-suggestions/mac/Stable/3HYIAl8_ndc

What exactly are you trying to achieve by that? If you are trying to run some kind of automated tests, you should try out PhantomJS.

Related

What are the alternatives to the Firefox Developer Tools?

Since last few updates of Firefox our beloved Firebug is integrated into the Firefox Developer Tools and a lot of people including me don't like what happened to Firebug.
The built-in developer tools have a very ugly menu system and messed up usability.
So, what are the alternatives to the Firefox Developer Tools? Is there a tool with the same usability as Firebug?
Alternatives are:
Turn off multi-process Firefox. (Though that's only a temporary solution and doesn't bring back all functionality of Firebug. E.g. the Script panel is broken in current versions of Firefox.)
Install an old version of Firefox where Firebug still works and disable updates. (Also only a temporary solution, because you'll miss (security) bug fixes and new features.)
Wait until the gaps between Firebug and the Firefox DevTools are fixed. (Or even help them fixing them.)
Switch to another browser and use its developer tools.
Rework Firebug to make it compatible with multi-process Firefox (which is the main reason for the integration into the DevTools). Update: Starting with Firefox 57 only WebExtensions will be supported, meaning extensions work cross-browser and are more secure, but they also have limited APIs. So, a reworked Firebug would not have all the features the original Firebug had.
Following Sebastian's advice I've downloaded old Firefox portable v47 from here:
https://sourceforge.net/projects/portableapps/files/Mozilla%20Firefox%2C%20Portable%20Ed./Mozilla%20Firefox%2C%20Portable%20Edition%2047.0.1/
and I'm using it with Firebug only for development. According to Firebug's website 47 is the last compatible version of Firefox:
https://getfirebug.com/downloads
To avoid compromising on security, for normal browsing I use updated version of Chrome.
Downgrading the version is not advisable, So instead of that go to the browser console and type your respective xpath in the mentioned syntax $x('path') to validate your XPath.
Or can find other similar plugin. So far I find the Plugin 'Xpather' in http://xpath.alephzarro.com/ link.
But I still would like to reactivate Firebug to rework by setting the preferences browser.tabs.remote.autostart,
browser.tabs.remote.autostart.1 and
browser.tabs.remote.autostart.2
to false via about:config.

Firebug is not working with Firefox version 50.0

I am using Firefox 50.0. After auto update of Firefox to version 50.0, Firebug has stopped working and attempting to use it is showing an inbuilt Firefox console while inspecting any DOM element.
Is there any patch to use Firebug on Firefox 50.0 version?
Solve The problem by Changing Mozilla Browser Configuration Settings.
Open A Blank Tab
type about:config in address bar then press enter (click on I accept the risk!)
find browser.tabs.remote.autostart
select the option then click the mouse right side
Turn The Option As False
Close the browser for restart browser
open browser again, inspect the element. I hope It Works Properly.
I manage to get Firebug work again, so here is what I done.
Everyone knows that Firebug isn't being developed or maintained any longer because it can't work with e10s, so here is my workaround:
Download Firefox Developer edition so you can allow XPI installation.
firefox-53.0a2.en-US.win64.installer.exe or
firefox-53.0a2.en-US.win32.installer.exe
Run Firefox developer edition after installing and go to the about:config (type in url bar)
Find xpinstall.signatures.required (set to false)
Find browser.tabs.remote.autostart (set all to false: browser.tabs.remote.autostart.1 and browser.tabs.remote.autostart.2)
NOTE: The Multi-process architecture improves the browser's stability, performance and security by separating tasks into processes, you disabling it at own responsibility.
After that you need to restart the browser.
Now you can go at the Firebug repository and install desired version
Here you can find all Firebug installations
I chose latest firebug-2.0b8.xpi and it forking fine.
P.S. You can disable updates for Firefox Developer edition.
Hope it helps.
Head over to Firebug website, you can see following message:
The Firebug extension isn't being developed or maintained any longer. We invite you to use the Firefox built-in DevTools instead.
Also Sebastianz told me,
Firebug is discontinued. The team has split up, the former team leader Jan "Honza" Odvarko is working on the Firefox DevTools now.
As #Makyen said in his answer, Firebug does not work with multiprocess Firefox, so remove Firebug right now and try Firefox DevTools instead, it's not optional (sadly), unless you don't update Firefox :)
Update 1
Take a look # Why got Firebug removed after updating Firefox to version 50?
Update 2
Take a look # my answer here: how to revert firebug to old version
Firebug does not work with multiprocess Firefox
The Firebug site claims that:
Firebug 2.0.18 is compatible with Firefox 30 – 52
However, it also explains that [emphasis mine]:
Firebug 2.0.18 fixes issue 8030. The extension is marked as multi-process (e10s) compatible so, it isn’t blacklisted and users can continue installing it. This way Firebug can help users to easily migrate into built-in Firefox developer tools – in case it’s running in multi-process enabled browser. When opened in a multi-process Firefox, Firebug’s tools cannot be used. Firebug will then only assist the user with migration to Firefox’s built-in tools.
They also direct you to read: Unifying Firebug & Firefox DevTools
That page says that [emphasis mine]:
Firebug 2 doesn’t work in multi-process browsers (i.e. e10s) and converting it is too complex, so it will stop working when e10s is activated in Firefox. You will be able to disable e10s for a while to keep using Firebug 2, but this won’t last forever.
The fact that Firebug does not actually work in multiprocess Firefox will account for different people having different experiences with Firebug working or not working in a particular version of Firefox. Firefox automatically enabling multiprocess mode will depend on multiple factors, including what other add-ons are installed in the profile.
Using Firebug in newer versions of Firefox
Thus, to use Firebug in newer versions of Firefox, you will need to disable Firefox from entering multiprocess mode. This can be done from the about:preferences page (also available from Tools➞Options). This an option which is under the "General" tab as "Enable multi-process Firefox ...". If multiprocess is not available, this option will not be shown. This option can also be changed by adjusting the preference browser.tabs.remote.autostart from about:config. [Note: browser.tabs.remote.autostart.2 and browser.tabs.remote.autostart.1 also appear to be used to indicate default states, thus I suggest using the about:preferences page to change this option.]
You can determine if your Firefox is currently running in multiprocess mode by looking in about:support. The line "Multiprocess Windows" under "Application Basics" will state if multiprocess is enabled or disabled.
Set up profiles explicitly for testing
Personally, I have different profiles set up for each of multiprocess explicitly disabled and multiprocess explicitly enabled (set browser.tabs.remote.force-enable to true), so I can perform testing under both conditions, with the state of multiprocess being enabled/disabled being known in advance.
I had the same problem when I updated Firefox. I was so addicted to firebug but I moved on to Firefox developer edition - https://www.mozilla.org/en-US/firefox/developer/
It also comes with the firebug theme which resembles firebug UI and its efficient.Just install FDE and activate the firebug theme as shown in the image below :
I had the same unexpected surprise when ubuntu updated FFX and suddenly things like the script panel stopped working. Since I was in the middle of working on something with a short deadline, I was not going to have the luxury of learning the firefox developer toolset and desperately needed to get firebug working. The fix that finally worked for me was to set Firefox preferences not to update. Then download v 49.0.2
https://support.mozilla.org/en-US/kb/install-older-version-of-firefox
I also had to tell Ubuntu not to include firefox in it's upgrades.
It looks like firebug will no longer be maintained as a seperate project, so you will want to get familiar w/ the built in dev tools, but hopefully this buys you some time. Worth mentioning (if I'm reading this right, it sounds like it will be integrated into the native tools:
https://blog.getfirebug.com/2016/06/07/unifying-firebug-firefox-devtools/
https://github.com/firebug/firebug.next
Its working. You need to install one more add-on "Firepicker" and restart the Firefox.
https://addons.mozilla.org/en-US/firefox/addon/firepicker/
I managed to resolve this issue by simply downgrading to mozilla old version using this url:
open https://ftp.mozilla.org/pub/firefox/releases/50.0/win64/en-US/
download and run the .exe setup
Go to Settings - > Add Ons
Click on extensions and search for firebug and firepath and then add those extensions
Hope this should resolve the issue. For those using Windows 32 machine can use the url
https://ftp.mozilla.org/pub/firefox/releases/50.0/win32/en-US/
http://toolsqa.com/selenium-webdriver/xpath-helper/
Open a new tab and navigate to any webpage. I have used www.DemoQA.com for demo.
Hit Ctrl-Shift-X (or Command-Shift-X on OS X), or click the XPath Helper button in the toolbar, to open the XPath Helper console.
Hold down Shift as you mouse over elements on the page. The query box will continuously update to show the XPath query for the element below the mouse pointer, and the results box will show the results for the current query.
If desired, edit the XPath query directly in the console. The results box will immediately reflect your changes.
Repeat step (2) to close the console.

What is the alternative for window.performance.getEntries(); in FireFox and Safari?

IE and Chrome offer window.performance.getEntries(); to get information about performance of entities in a webpage.
In both FireFox and Safari, this command is undefined when I try to use it from the console.
So, my question is: what is the alternative in FireFox and Safari for this functionality?
EDIT:
I'm using this command via Javascript. Hence I need an alternative also for other browsers.
CanIUse says something for resource timing (which is part of what youre asking): http://caniuse.com/#search=resource timing
Also it says
This feature can be enabled in about:config, search for dom.enable_resource_timing flag
By default it is turned off, you'll have to ask your users to switch it on manually, or to write a plugin for this purpose
Now window.performance.getEntries(); works fine in Firefox, but the problem remains for Safari.

Silent install for Safari extension on Mac without any user prompting

I am setting up Selenium testing for Safari 5 on Mac. I need to install our Safari extension before hand, and it needs to happen silently and without any user prompting. From previous posts, I've found this works in that it loads the browser with the extension:
open -a Safari okta.safariextz
But it leaves the browser opened with a prompt to the user: "Are you sure you want to install the extension?"
Selenium doesn't have access to this prompt and can't click install. I need to configure Safari such that it does not prompt the user to install, but just allows the extension to be installed.
Is there any way to do this?
Any pointers appreciated.
-Denali
Edit: Possible new method: The answer here might suggest (it's somewhat unclear) that, with a possible risk of messing up your future safari upgrades, you might be able to manually install an extension, skipping the confirmation prompt, via a file move and a plist hack. I haven't tried it, but it looks as if it might work:
If you're just doing this for in-house deployment and don't mind if it breaks on a Safari upgrade, then you can quit Safari, install the extension into ~/Library/Safari/Extensions and update ~/Library/Safari/Extensions/Extensions.plist (the format is rather obvious; /usr/libexec/PlistBuddy is useful for such things).
You can't do what you're after--at least, not with any commandline switch or plist hack that I know of. Extension install confirmation is a core part of Safari's security model, and is not easily circumvented.
Instead, I'd consider using automator (if you're not familiar with it, think Selenium but for desktop apps, and more) to send a click on the appropriate button, and then distributing an automator app that launches safari with the appropriate parameters, sends the click when the extension dialog appears, and then goes on to run Selenium-based (rather than automator-based) automations. To get started, I'd check out the following links:
Automating via applescript rather than the "duplo legos" automation builder: http://www.mactech.com/articles/mactech/Vol.21/21.06/UserInterfaceScripting/index.html
Very brief overview of macro recording (you hit record, send the click you want, hit save, and you can re-execute your recorded actions): http://automator.us/leopard/features/virtual-user.html
My favorite intro to automator tutorial: http://cjrtools.org/mac/tutorials/autohowto.html
I don't believe there is any way to do a silent extension install as it would be a security hole. You may want to try incorporating an AppleScript to do the extension install before running your Selenium tests.
Here is another question on StackOverflow with AppleScript details for Safari extension reloading that can be used for your purposes:
How to reload a Safari Extension from the command line?

Google chrome frame - how does it work?

I'm looking into chrome frame and I'm wondering how it works.... http://scriptsrc.net shows that it's a javascript that can be embedded on the page....
http://code.google.com/chrome/chromeframe/ shows it as an install file... does the JS prompt for an installation or something?
Google chrome frame is a plugin (think Adobe Flash) for Internet Explorer, that replaces core modules of IE (unlike Flash), like layout/rendering and javascript. But the UI remains. Then there is some javascript that can detect if this is real IE or IE+Chrome, and also offer an install option to the user. Also there is a HTTP-header and a meta-tag that are required to switch IE to chrome mode, when available.
The JavaScript is to detect it and enable it if it's there. (scriptsrc is just giving you the link to the file, which is on the Google CDN.) The end user does have to do a one-time install of it, it's a plug-in (like Flash or Java). Quoting from this page in the Google documentation:
In Internet Explorer, check() determines if Chrome Frame is installed. If not, the user is prompted to install it.

Resources