How to manipulate available fonts detected by browser selenium python? - javascript

I am trying to manipulate the font fingerprint the browser can detect that are in your system when using selenium webdriver.
I am using https://pixelscan.net/ to check the font hash and list of fonts tracked by browser:
How can I randomly change the list of fonts on every launch of selenium webdriver with python?
Only solution to this problem I could find is by using chrome extension https://chrome.google.com/webstore/detail/font-fingerprint-defender/fhkphphbadjkepgfljndicmgdlndmoke?hl=en, but I don't like this approach, I want it programmed without using extensions.
Thank you!

Related

Is there any way to know if outlook is installed on users system, using HTML & javascript

I want to check if user has outlook application installed just by using a simple HTML page with javascript.
Is this possible?
NOTE: This should also work on google chrome. ActiveXObject does'nt work on Google chrome
Regards,
Arif
No. There is no way for a webpage to sniff out what is installed (with the occasional exception of browser plugins) on a visitor's system.

how does Google Doc get the fonts list installed on PC/Mac

I use Chinese language, when I install a new Chinese font, reopen my google doc page, the new font will show in the font list. I want to know how google do this. I search this question in google, there is only one method that using flex to fetch the system fonts, but I close the flash plugin of chrome and retry, It also works fine! And it also works fine on SAFARI, how did Google Doc do this?!
You can use the following script to detect what fonts are installed in the system in vanilla JS without any flash or such.
http://www.lalit.org/lab/javascript-css-font-detect/

Open a link in another browser: Javascript

Is it possible to open a link in another browser using Javascript?
I basically want to open Firefox from Google Chrome. I'm (attempting to) write an extension for chrome, but I can't find anything pointing to be able to do this.
I think I could use NPAPI plugins for Chrome, but they are being deprecated and are very insecure, so are there any alternate options?
You did not provide enough info so I can't asses the utility of what I'm about to offer, but here's an option:
Basically, use URL schemes to launch your application of choice from the browser. Start reading this SO question - How do I register a custom URL protocol in Windows?. You'll need to register some prefix - like "firefox://" for it to work. Should also be possible on other platforms.
Of course, this assumes that your user has firefox installed and that you can register on their machine. If this application is meant for a the general public, you'll need to perform those by some other means (installer?)
Yet another way to go is (as mentioned above) to run some native code via the extension. Not a simple choice: once again you need to somehow install the native code on the host machine (and you cannot do that via Chrome extensions, for security reasons).
You can use Native Messaging, paired with a native program which will launch the browser. I would write the native application in something like Python.

Is it possible to check if an extension is installed on the browser (JS)?

I am trying to check what extensions are installed on the client side (extensions like Adblock, User Agent Switcher). Tried navigator.plugins but that does not display all extensions. Is it possible to see what extensions are installed (maybe with Javascript) ?
Thankfully, you can't.
Unless an addon/plugin/extension specifically auths himself (usually via the User-Agent header), this is informatino the browser will not give you.
Flosi is correct, however some of these plugins change specific behaviors. Ad-block for instance blocks some images from known ads sites and google analytics for the most part so you might trying to test for these different behaviors.

App switching in UI Automation

Is there a way to switch between applications using UI Automation in instruments?. And also to change wifi settings using the same? Any help will be greatly appreciated.
There is not currently a way to change connection settings. Although, technically if you are using the simulator you could launch an external script using UIAHost.performTaskWithPathArgumentsTimeout to change the host computers internet settings.
Switching between apps is also not possible for the reason that they don't want you controlling apps that aren't yours. However, if you own both apps I suppose it'd be possible to launch an external script to launch one app in instruments and once that test is over launch the second one. This would only work in some cases though.

Categories

Resources