Unpacked Chrome extension not showing up in Extensions folder in Chrome Profile - selenium

I unpacked and loaded an extension for Chrome, https://github.com/iamadamdev/bypass-paywalls-chrome, but I need to find its corresponding folder in the Extensions folder in the Chrome profile path /Users//Library/Application Support/Google/Chrome/Default/Extensions/ and I can't find it there.
The rest of my Chrome extensions are there though, but those were installed directly from the Chrome Web Store whereas this one was unpacked with developer mode, so I'm wondering if that's the issue? If it is, or if it's due to something else, is there a way to fix this? I need to find it for my Selenium-based project, where the WebDriver opens up the Chrome browser with an extension preloaded, following https://seleniumjava.com/2016/05/22/start-the-chrome-browser-with-extensions/

Related

How to bundle static files into chromium builds?

If I wanted to bundle JS/CSS files into chromium builds and not have them requested over network for my web app, how would I go about doing that?
Right now I am able to checkout and build chromium locally and I was just curious if this is possible to do? I heard about some tailwind/nextjs stuff being baked into some future versions of chrome and wanted to see how they would do it?

What is Browser Binary Manager how to use it for Selenium

I came to know recently that using 'WebDriver Binaries' manager is a good practice in Automation projects.
But not sure what is this and how to use?
Did some google searches also and got quite a lot posts around how to manage binaries; but not on why to use.
So it will be great if someone can guide on it with its benefits.
Finally Got to know about it some time back as below, thought it might be useful for other hence posting it as self Answer.
As an automation engineer, we always have to set the path for the browser binary, for this first, we need to download a binary file[driver.exe] which allows WebDriver to handle browsers. In addition, the absolute path to this binary must be set as JVM properties, as follows:
System.setProperty("webdriver.chrome.driver", "Your path to/chromedriver");
System.setProperty("webdriver.gecko.driver", "Your path/geckodriver");
Its just not about the downloading and setting properties to set the binary path but you also need to change the binaries frequently as the browser version or Selenium version changes.
I found this solution and implemented it- and That's All!
Now I don't need exe libraries anymore for the browsers!
A small maven repository made life easy.
How it works:
When working on a Maven project, you just need to add a dependency called WebDriverManager. This library will take care of everything your browser version and driver.
In order to use WebDriverManager in a Maven project, you just need to add the following dependency in your pom.xml:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.3.0</version>
</dependency>
WebDriverManager actually gets your browser version and downloads the compatible browser binary by itself to make you run your code without interruption.
Now, rather than setting the browser binaries, you just need to add below line of code in your browser manager class and that's it.
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
You're done!
The line WebDriverManager.chromedriver().setup(), does all magic for you:
It checks for the latest version of the WebDriver binary.
It downloads the WebDriver binary if it's not present on your system.
It exports the required WebDriver Java environment variables needed by Selenium.
Reference:
https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-java-dependency
When you say WebDriver binaries, I am assuming that you are talking about the WebDriver bindings or the libraries. With out adding the WebDriver binding's into your project you can't really do anything with the WebDriver interface, like you can't invoke any browser or drive any website. Either you can manually add them into your project build path or you can use any dependency management tool like Maven for getting all the WebDriver libraries into your project. You can then use them.
You can either just add the standalone server file, which would do the same job as WebdDriver bindings.
There are Third Party Driver's which we use for each of the bowser's like, chrome - chromedriver.exe, firefox - geckodriver.exe ..etc ---These are also called as WebDriver binarie's(mostly refereed as driver files).

Navigating options are not working in Selenium

After long time i was working today on Selenium webdriver and i observed that navigating options arent working in Selenium.
I am woring in WIN10
I tried with all jar files, 2.53,3.01 with geckodriver.
Example: driver. is not displaying any autocomplete options and also it is throwing error if typed manually.
Also i observed a strange behaviour that, navigating options are working in my previously created project class file and if i create another class inside same project, navigating options or autocomplete options are not displayed and not working.enter image description here
Sometimes the issues occur related to .jar file which you have imported in your Eclipse ide. so you can use the project clean option
Project->clean
OR
You can remove the imported .jar file from your build path and reimport it again

How to install Selenium IDE?

When I follow any tutorial video's and click the download link on Selenium it downloads Selenium as a jar file I'm not sure what to do with. In all the video's I see it downloads the file as an add-on to Firefox which is different to me. I have downloaded a separate add on for Firefox but it doesn't seem to work.
Any help or a pointer to a good tutorial would be great! thanks in advance. Sorry for the question I'm sure it's very basic I just can't figure it out.
Access this url.
Click on Add to firefox
Restart firefox
Simple steps:
Open Firefox -> Search Selenium IDE on Google
Go to this URL: https://addons.mozilla.org/en-us/firefox/addon/selenium-expert-selenium-ide/
Click on Add to firefox
After installation see message
Restart the Browser
GO to Tools-->Selenium IDE

Selenium ChromeDriver SendKeys breaks jQuery File Upload Plugin

I'm creating a UI test for a page with async file upload experience using Selenium ChromeDriver. File upload is implemented using jQuery File Upload Plugin (https://github.com/blueimp/jQuery-File-Upload) which enhances an input type="file" with additional functionality like async upload, multiple files upload, drag-n-drop support etc.
As you know, the recommended way to deal with standard input type="file" in Selenium tests is something like
driver.FindElement(By.Id("fileinput")).SendKeys(#"c:\test.txt");
However, it does not work with this plugin. The server-side (in my case it is an MVC controller's POST action) does not get any calls from the client and when I open Chrome DevTools Console I can see the actual error Failed to load resource: net::ERR_FILE_NOT_FOUND (basically it complains about the unreachable server URI).
At the same time manually it works perfectly fine (when I navigate to the page, click Upload, choose file in Open file dialog and press Open). So it seems the problem can be in between Selenium and the upload plugin itself.
Has anyone else faced with the similar issues using jQuery File Upload Plugin + Selenium ChromeDriver? I'm running ChromeDriver version 2.9 and jQuery File Upload version 5.40.0.