Schedule a meeting in case of any queries/guidance/counselling:
Book An Appointment
Where we learn technology
By far, the most widely used modern version control system in the world today is Git. Git is a mature, actively maintained open source project originally developed in 2005 by Linus Torvalds, the famous creator of the Linux operating system kernel.
Developers who have worked with Git are well represented in the pool of available software development talent and it works well on a wide range of operating systems and IDEs (Integrated Development Environments).
Having a distributed architecture, Git is an example of a DVCS (hence Distributed Version Control System). Rather than have only one single place for the full version history of the software as is common in once-popular version control systems like CVS or Subversion (also known as SVN), in Git, every developer’s working copy of the code is also a repository that can contain the full history of all changes.
In addition to being distributed, Git has been designed with performance, security and flexibility in mind.
4. GIT first commit
5. GIT – 2nd commit
6. GIT logs/history
7. GIT diff
8. GIT blame/ GIT short log
9. GIT local branching process
10. PR (Pull Request) Process
11. GIT various branching commands:
12. GIT Clone vs GIT Fork
13. GIT Local Merge
14. GIT Tag and Releases
15. GIT Fetch vs PULL
16. GIT Merge vs Rebase
17. GIT Cherry-Pick
18. GIT Stash
19. GIT Merge Conflict
20. GIT Aliases
21. Comparing two commits
22. GIT Reset
23. GIT Revert
Buy Now:
Grab it in just:
Discounted Price: 1299 INR (20 USD)
Actual Price: 2250 INR (30 USD)
Payment Options:
Here I’m sharing the bank account details.
Please send me the screenshot of the receipt once you make the payment without fail.
Please send the details at : naveenanimation20@gmail.comSubject Line: GIT Course Payment Receipt – Your Full Name
You can make the payment via payment link:
OR Via Bank Transfer:
Please find below bank details:
You can make the transaction directly to the given account or make it via Western Union Or Xoom.
Bank Details:
Full Name: NAVEEN KHUNTETAContact No.: 9902233400Payee name: NAVEEN KHUNTETAName of the Bank: ICICI bankAddress of the Bank: Bhandarkar Road, PuneBank Account Number: 624001553272IFSC Code(11 Digit Code): ICIC0006240You can send via PayPal or Xoom also:
PayPal Payment: https://paypal.me/naveenautomation
Xoom Payment:
https://www.xoom.com/india/send-money
You can also make the payment via Tez (Google Pay) OR PhonePe :
UPI to this number: +91-9902233400
UPI: naveenanimation20@okicici
OR Google ID: naveenanimation20@gmail.com
PING ME AT +91-9902233400, IN CASE OF ANY ISSUES.
Note:
naveenanimation20@gmail.com
Terms & Conditions:
1. For the paid course, refund is not applicable.
2. In case of any need of resume, you can mail me or tag me in Box comments section.
3. You can mail me or tag me in Box in case of any technical questions and doubts.
4. Response time of the queries within 24 hrs.
5. Technical queries won’t be resolved over whats app messages.
6. Feel free to ping me, in case of any Box issues.
7. This is strictly not allowed to share your credentials with anyone, if any account is found, it will be deactivated and account will be terminated.
Cheers!
Happy learning!
Naveen AutomationLabs
Selenium & Java Training – Regular Batch (30th March 2023)
This time I’m introducing some amazing content on Java, Selenium and some different approaches on Framework Designing with some really complex real time use cases.
This will be a very different content from my YouTube channel.
Next Batch Starting from: 30th March, 2023
Duration: 15 weeks (4 days in a week) (Mon to Thursday)
Total Fee:
17,000 INR (for Candidates in India) – including Registration Fee
320 USD (for Candidates in USA/UK/AUS/Europe) – including Registration Fee
Location: Online (Zoom Meeting) – 1 hr + 15 mins
Note:
There will be 2 demo sessions (first two classes are demo sessions).
Demo Meeting link will be shared one day before the session.
After 2 demo sessions, pending amount must be paid.
Note: If you are paying through PayPal, You need to pay 330 USD (10 USD will be the PayPal Fee).
Note:
Course Content:
2) Core Java/Programming : This class will set you up for understanding Basic OOPs and java concepts. These concepts will be extremely important for you to become a good Automation tester. This section is specially designed so that can be followed by any Manual test very easily.
3) Eclipse IDE : This topic might seem little off place here but it’s very important topic to understand the tool you are using. Eclipse will the primary choice of development environment and we will discuss features of eclipse here.
17) Dev Ops & Continuous Integration
Cheers!!
Naveen AutomationLa
There is no ElementNotFoundException as such in selenium, if you are talking in #Selenium context. We have NotFoundException which is extended by :
Direct Known Subclasses as:
NoAlertPresentException, NoSuchCookieException, NoSuchElementException, NoSuchFrameException, NoSuchWindowException.
Please refer this Java API Doc: https://jar-download.com/artifacts/org.seleniumhq.selenium/selenium-api/3.141.59/documentation
“NoSuchElementException extends NotFoundException”
and
“NotFoundException extends WebDriverException“.
This is thrown when???
1. Element could not be found in the DOM – or may it never. exists.
2. The page is still being loaded and you’ve already finished your WebElement search
3) AJAX Element has not returned yet on the page
If you encounter this exception, you may want to check the following:
>Check your selector used in your find_by…
>Element may not yet be on the screen at the time of the find operation, (webpage is still loading) apply WebDriverWait() for an element to be appeared on the page.
Exceptions that may happen in all the webdriver code.
Common Exceptions in Selenium:
exception selenium.common.exceptions.ElementClickInterceptedException
(msg=None, screen=None, stacktrace=None)[source]
The Element Click command could not be completed because the element receiving the events is obscuring the element that was requested clicked.
exception selenium.common.exceptions.ElementNotInteractableException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when an element is present in the DOM but interactions with that element will hit another element do to paint order
exception selenium.common.exceptions.ElementNotSelectableException (msg=None, screen=None, stacktrace=None)[source]
Thrown when trying to select an unselectable element.
For example, selecting a ‘script’ element.
exception selenium.common.exceptions.ElementNotVisibleException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when an element is present on the DOM, but it is not visible, and so is not able to be interacted with.
Most commonly encountered when trying to click or read text of an element that is hidden from view.
exception selenium.common.exceptions.ErrorInResponseException
(response, msg)[source]
Thrown when an error has occurred on the server side.
This may happen when communicating with the firefox extension or the remote driver server.
exception selenium.common.exceptions.ImeActivationFailedException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when activating an IME engine has failed.
exception selenium.common.exceptions.ImeNotAvailableException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when IME support is not available. This exception is thrown for every IME-related method call if IME support is not available on the machine.
exception selenium.common.exceptions.InsecureCertificateException
(msg=None, screen=None, stacktrace=None)[source]
Navigation caused the user agent to hit a certificate warning, which is usually the result of an expired or invalid TLS certificate.
exception selenium.common.exceptions.InvalidArgumentException
(msg=None, screen=None, stacktrace=None)[source]
The arguments passed to a command are either invalid or malformed.
exception selenium.common.exceptions.InvalidCookieDomainException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when attempting to add a cookie under a different domain than the current URL.
exception selenium.common.exceptions.InvalidCoordinatesException
(msg=None, screen=None, stacktrace=None)[source]
The coordinates provided to an interactions operation are invalid.
exception selenium.common.exceptions.InvalidElementStateException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when a command could not be completed because the element is in an invalid state.
This can be caused by attempting to clear an element that isn’t both editable and resettable.
exception selenium.common.exceptions.InvalidSelectorException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when the selector which is used to find an element does not return a WebElement. Currently this only happens when the selector is an xpath expression and it is either syntactically invalid (i.e. it is not a xpath expression) or the expression does not select WebElements (e.g. “count(//input)”).
exception selenium.common.exceptions.InvalidSessionIdException
(msg=None, screen=None, stacktrace=None)[source]
Occurs if the given session id is not in the list of active sessions, meaning the session either does not exist or that it’s not active.
exception selenium.common.exceptions.InvalidSwitchToTargetException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when frame or window target to be switched doesn’t exist.
exception selenium.common.exceptions.JavascriptException
(msg=None, screen=None, stacktrace=None)[source]
An error occurred while executing JavaScript supplied by the user.
exception selenium.common.exceptions.MoveTargetOutOfBoundsException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when the target provided to the ActionsChains move() method is invalid, i.e. out of document.
exception selenium.common.exceptions.NoAlertPresentException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when switching to no presented alert.
This can be caused by calling an operation on the Alert() class when an alert is not yet on the screen.
exception selenium.common.exceptions.NoSuchAttributeException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when the attribute of element could not be found.
You may want to check if the attribute exists in the particular browser you are testing against. Some browsers may have different property names for the same property. (IE8’s .innerText vs. Firefox .textContent)
exception selenium.common.exceptions.NoSuchCookieException
(msg=None, screen=None, stacktrace=None)[source]
No cookie matching the given path name was found amongst the associated cookies of the current browsing context’s active document.
exception selenium.common.exceptions.NoSuchElementException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when element could not be found.If you encounter this exception, you may want to check the following:
exception selenium.common.exceptions.NoSuchFrameException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when frame target to be switched doesn’t exist.
exception selenium.common.exceptions.NoSuchWindowException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when window target to be switched doesn’t exist.
To find the current set of active window handles, you can get a list of the active window handles in the following way:
exception selenium.common.exceptions.RemoteDriverServerException
(msg=None, screen=None, stacktrace=None)[source]
exception selenium.common.exceptions.ScreenshotException
(msg=None, screen=None, stacktrace=None)[source]
A screen capture was made impossible.
exception selenium.common.exceptions.SessionNotCreatedException
(msg=None, screen=None, stacktrace=None)[source]
A new session could not be created.
exception selenium.common.exceptions.StaleElementReferenceException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when a reference to an element is now “stale”.
Stale means the element no longer appears on the DOM of the page.Possible causes of StaleElementReferenceException include, but not limited to:
exception selenium.common.exceptions.TimeoutException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when a command does not complete in enough time.
exception selenium.common.exceptions.UnableToSetCookieException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when a driver fails to set a cookie.
exception selenium.common.exceptions.UnexpectedAlertPresentException
(msg=None, screen=None, stacktrace=None, alert_text=None)[source]
Thrown when an unexpected alert is appeared.
Usually raised when when an expected modal is blocking webdriver form executing any more commands.
exception selenium.common.exceptions.UnexpectedTagNameException
(msg=None, screen=None, stacktrace=None)[source]
Thrown when a support class did not get an expected web element.
exception selenium.common.exceptions.UnknownMethodException
(msg=None, screen=None, stacktrace=None)[source]
The requested command matched a known URL but did not match an method for that URL.
exception selenium.common.exceptions.WebDriverException
(msg=None, screen=None, stacktrace=None)[source] vBase webdriver exception.
Reference taken from:
https://www.selenium.dev/selenium/docs/api/py/common/selenium.common.exceptions.html
Cheers!!
Naveen AutomationLabs
TestNG Tutorials:
First Question that will come to everyone’s mind “is it Authentication or Authorization”?
Well, it is Authorization, to be precise Authorization between services. Now next doubt that would arise is why the services would be communicating with each other, generally in API environment what happens is, it is actually user and API exchange information or vice-versa.
But hold on, when there are two or more services along with the user involved in communication, then there should be some way so that the services should know each other at least an introduction!! to whom they are dealing with and this introduction happens on behalf of user with the help of “Token” and this whole process in known as OAuth2.0.
Example:
Let say there are three entities user, App1 and App2 User wants to use one feature of App1 but that feature in App1 will require some input data(say file, videos etc). This data is actually stored in App2(suppose in google drive).
Now the user wants that App1 should directly communicate with App2 take the required data from there and use it, what the user is actually interested is “End Result”.
Given the scenario now we can dive in to more technical aspect.
Resource Owner -> The user is resource owner.
Client – > App1 is the client because it is actually using some features/services of App2.
Client ID -> It is the unique identifier by which App2 remembers App1. It is used to keep track of an api because there may be times when App2 will be communicating with different api’s.
Client Secret -> It is like a password of a particular client ID store at App2.
Resource Server -> It is primarily used to generate Access token requested by any api so that particular api can use this access token in order to request to access a resource from target api.
AuthServer -> what is this??? his name was mentioned in our example. This server is actually sometimes is part of Resource Server. It is responsible to generate the “Token” used for Authorization.
Auth server is sometimes part of api and sometimes not it totally depends upon the architecture of api. As a real time example of this – When we try to login to any website using google/facebook login, in backend this auth server is used for Authorization purpose.
Grant Types – There are generally two types of grant types in OAuth2.0
a) Authorization Code – The Authorization code grant type is used by confidential and public clients to exchange an Authorization code for an access token.
b) Client Credentials – It is used by clients to obtain an access token outside of context of a user. This is typically used by clients to access resources about themselves rather than to access a user’s resources.
c) Refresh Token – The Refresh Token grant type is used by clients to exchange a
refresh token for an access token when the access token has expired. This allows clients to continue to have a valid access token without further interaction with the user.
d) Device Flow – It is used for Authorizing apps on devices that don’t have a web
browser.
In this blog we will be discussing Authorization code grant type which is most widely used in
general.
Please refer below diagram for the same:
Real time examples of OAuth2.0:
Let us go to bookmyshow.com and try to sign in –
Here we are seeing an option like Connect via Google or Connect via Facebook. Suppose if we click on Connect via Google, will be redirected to –
This is all based on OAuth2.0 mechanism, if we sign in to our google account we are giving access to bookmyshow to use our information. Similarly there are other websites which works on the same principle like makemytrip, cleartrip etc.
What are Bearer Tokens?
Bearer token are simple String which are used for authentication for API’s request and is sent in Header of a request. These tokens doesn’t require cryptographically signing of each request (this is the case in OAuth1.0) and are more easier way of making api request.
As bearer token consists of simple plain text and can be vulnerable to security that’s why it is always recommended that API requests consisting of bearer token should be made over an HTTPS protocol.
We will see differences between these Authorization framework on basis of below
parameters:
Blog Contributors:
This blog is written by Shobhit Varshney.
https://www.linkedin.com/in/shobhit-945298101
Reviewer: Naveen Khunteta
If you have seen this strange issue while running the test in HeadLess mode. You might be getting lower resolution of the images or thumbnail png’s from the site.
Please use below code:
ChromeOptions options= new ChromeOptions();
options.addArguments(“window-size=1400,800”);
options.addArguments(“headless”);
WebDriver driver = new ChromeDriver(options);
You can also use Dimension class from Selenium:
Dimension dim = new Dimension(width,height) driver.manage().window().setSize(dim) |
Server is checking the headless browser as not needing the higher resolution of the images. This solution will help you to set the widnow-size to “1400,800”. You can try this and take the screenshot of the page. in Headless. You should get higher resolution and clear images.
This is just a small trick 🙂
Cheers!!
Naveen AutomationLabs
M | T | W | T | F | S | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
© 2023 naveen automationlabs
Theme by Anders Norén — Up ↑