Is there a way to making my browser borderless - browser

I know this is not programming related directly, however, I was wondering if there is a way I can run my chrome browser or any browser borderless and pined on my desktop, but not in full-screen mode.

Related

Switch to window (tab) without bringing browser to front

I am using Python and Selenium to navigate multiple tabs. How can I switch to a different window/tab without bringing the entire browser window to the front and without the selenium window "stealing" the focus of my computer? For example, if I'm typing in the search bar of a normal browser and my script switches tabs, it'll stop typing the search bar and I'll have to reclick the search bar to start typing again.
No headless mode suggestions please.
Changing the browser location off the screen doesn't work because it still steals focus
Minimizing the browser doesn't work because it unminimizes when the switch to command is run
Here is how I'm switching windows:
for handle in driver.window_handles:
driver.switch_to.window(handle)
The answer is NO, this is not possible to do with Selenium.
Selenium is created to simulate actions a user can do via GUI.
As a user you can't do what you are asking about, Selenium can't do it as well.
I think, If you deploy your Automation scripts to a VM (which is there in you Machine), You can continue to start working on your local browser and Your Automation script will run on a VM and will have a independent environment for the same.

How To Hide Chrome Web Driver Icon (Python-Selenium)

UPDATED WITH REASONING
Goal: Run chrome web driver in background without showing an app icon in the dock or application bar. FYI: I can already run chrome headless, but I have not been able to hide or not show the chrome icon in my app bar.
Reason: I am building an application that accesses various websites in parallel and I would not like the chrome app icons to display for the synchronous tasks that are taking place. I want to run these tasks in the background.
Current Code with chrome options that will display headless chrome
chrome_options = Options()
chrome_options.add_argument('headless')
chrome_options.add_argument('window-size=1200x600')
driver = webdriver.Chrome(executable_path=executable_text, chrome_options=chrome_options)
Research
list of chrome options: https://peter.sh/experiments/chromium-command-line-switches/
one of many posts explaining how to do headless chrome: Selenium - chrome Driver fail to start in background (without a start-up window)
How can I hide the chromedriver app icons from displaying? Is there a chrome option I can set in addition to setting the 'headless' chrome option? Is this more of an OS setting that needs to be made to run chromedriver in the background? I am successfully able to run multiple chromedrivers in headless mode but it would be nice to NOT show the chrome icons in the dock or application tray similar to how phantomjs does not launch an app icon.
^In the image above those are the chromedrivers that run in headless mode displaying in my dock and ideally for my program I would not even want to display those icons since it is all background processing anyways.
Update (this worked for me to hide the chromedriver icons at least on my Mac):
I was not able to find a Chrome Option to accomplish hiding the chromedriver icons that appear in the dock. However, I was able to edit the Info.plist file for Chrome as part of my program to do the trick (of hiding chromedriver icons) using the LSBackgroundOnly key.
In the Info.plist for Chrome, programmatically, I entered:
<key>LSBackgroundOnly</key>
<string>1</string>
On my Mac using python3 code I used os.system to execute a terminal command using defaults to enter the LSBackgroundOnly key when the program is executing and then at the end of program execution I delete the LSBackgroundOnly key from the Info.plist.
like this:
1)
defaults write /Applications/Google\ Chrome.app/Contents/Info.plist LSBackgroundOnly -string '1'
2)
defaults delete /Applications/Google\ Chrome.app/Contents/Info.plist LSBackgroundOnly
AS INFO: This is tricky because your normal chrome app may start up in background mode if you don't add/delete LSBackgroundOnly properly during program execution. In my experience, worst case scenario you may have to manually remove LSBackgroundOnly from the Info.plist file then restart your computer to get Chrome out of background mode.
I remove the LSBackgroundOnly key from the Info.plist file in my program after program execution because the key only needs to be in the file when the chromedrivers are launched. After that I want to be able to use regular Chrome app without issues of it opening in background mode. But, if you understand your program execution and handle your exceptions, this will definitely work to hide the icons correctly and there will be nothing different in using your regular Chrome app.
Happy hacking.
This is not possible using Selenium. I don't really understand why you want to do this. Is there a real purpose, or it's just you don't want it to show? Even if the Chrome app shows on the dock, in headless mode, it works pretty good.
However, if you want your icon to not appear in the dock when opened, then you need to disable it by modifying the Info.plist file for that application.
In your Info.plist for Chrome, add this
<key>LSUIElement</key>
<true/>
This will prevent your app icon from appearing in dock, when working. I found this out a long time ago and this is the post where I saw it.
PS - I have not tested it for Chrome app. Please test at your own peril.

Chrome WebRTC Screen Sharing: On stopping screen share, browser window doesn't become active/focused automatically

This is regarding Screen Share on Chrome browser using WebRTC.
An example implementaion of Screen Share on Chrome using WebRTC is: https://talky.io
When the user choses to share a different application(say a text editor), that app's window becomes active(focused) and comes on top of browser, and this is as expected...
The Problem
But after sharing this application, when user clicks on the "Stop sharing" button(present on the floating widget provided by Chrome), the previously shared application window remains on top(focussed). Ideally on stopping screen share, the browser window should be brought back on top, as in focussed.
Is there a way to achieve this using Javascript focus method? Or is this something that Chrome should take care of.

Disable Chromium Ctrl+T, Ctrl+N, Ctrl+W, Alt+F4, etc on Linux in kiosk mode?

Is there a way to disable Chormium's shortcut keys in Linux? I've tried the --app and --kiosk flags but they don't disable the shortcuts, you can still create a new (though unusable) tab with Ctrl+T and can create a new (fully functional) window with Ctrl+N. Also, Chromium appears to do it's own check for Alt+F4 because even though I have it disabled in the window manager it will close Chromium. How do I disable all the shortcuts within Chromium? Window manager is matchbox, started with xorg + nodm (the default lightdm+openbox system didn't allow me to auto-restart the session or get rid of Alt+Tab).
This is for an embedded system using node.js in the background to handle hardware io, but it will need a network connection to function so I want to ensure users are locked out of the browsers (the various Ctrl+Alt+F* shortcuts have already been removed, Chromium is all that remains in making it a real kiosk system). Alt+F4 isn't a major concern (though it would be really nice to get rid of) because when Chromium crashes nodm will automatically restart it and it handles the Alt+F4 somewhat reasonably (black screen, flashing white, then it's back up - it's not a security concern just a severely ugly "feature" people might stumble accross).
I don't think chromium has an inbuilt interface for disabling os keyboard shortcuts like ALT+F4, but what you could do is intercept those key-presses with javascript and that should be enough to stop the key-presses from working.
To enable such a script on all your pages, you'd need something like greasemonkey, which chromium has a support for out of the box, you can read about it here.
Custom Keyboard Shortcuts - Chromium extensions

Detecting Chrome browser exit?

I tried everything but nothing seems to work for me. I tried to detect the closing of the browsing by detecting window closing like the code below but that does not work for me. What am I doing wrong and is there another solution to detect Chrome closing?
chrome.windows.onRemoved.addListener(function(windowId){
alert("Browser exit!");
});
Your general problem is that quitting the browser means that browser can no longer run your script to check if it has quit yet -- it's like trying to ask a person if they've died: the answer (if you get one) is only ever going to be "no".
One solution you might try is a long-running background page with the background permission:
Makes Chrome start up early and and shut down late, so that apps and extensions can have a longer life.
When any installed hosted app, packaged app, or extension has "background" permission, Chrome runs (invisibly) as soon as the user logs into their computer—before the user launches Chrome. The "background" permission also makes Chrome continue running (even after its last window is closed) until the user explicitly quits Chrome.
This permission allows the Chrome to keep running your extension even after all browser windows have closed. Normally, Chrome can only do things when it has windows open, so we run into the problem of Chrome being unable to detect when all windows have closed (as explained above). With the background permission, Chrome retains the ability to run extension code even when all windows have closed.
i'm just looking to get control when my extension exits not the entire browser; my extension uses a text box exclusively, so i set its onblur property to a function and put my exit code there; probably not what you're looking for, but it works for me!
the chrome developer website recommends not using background pages due to "memory and other resources they consume";
i agree a more consistent way to get control on extension exit would be useful; it is an html page that otherwise seems integrated with the dom;
chrome does not provide any API to detect chrome browser is going close. However, we can detect chrome browser opening event inside background page when using chrome extension.
background.js
chrome.runtime.onStartup.addListener(function () {
console.log("extension started: " + Date.now());
});
this event will fire when chrome browser will start. next you can use any trick to identify the chrome browser was exit.

Resources