How webdriver is working?
How selenium
integrates with diff languages? Ex: Perl, python, Java, php,dot net and other languages?
Answer:
WebDriver Wire
Protocal.
Explanation:
Before we start, let’s quickly start selenium server.
Command: Java –jar E:\Selenium-Jars\selenium-server-standalone-2.53.0.jar
Copy the Remote
webdriver instance url highlighted above and past it in the Firefox browser.
Step 1: Create a
Session:
Click on Create on
create session button and select firefox from the drop down and say OK.
Now a fresh Firefox
browser opens and a Session ID appears as shown below.
‘POST’ details
for the same request.
Please install RestClient Add-on over Firefox browser. This is how it looks. ( This software is used to understand the selenium wire protocol )
NOTE: Now, close the created firefox browser and we will recreate a new session using RestClient add-on.
Step 2: Create a fresh driver session using RestClient.
Step 2: Create a fresh driver session using RestClient.
Now, Select the Method
type as POST, URL is http://127.0.0.1:4444/wd/hub/session
and Body as {"desiredCapabilities":{"browserName":"firefox"}}
then hit the send button.
A fresh Firefox
browser opens ( Obviously a new session will be created).
NOTE: This is how Wedriver
API looks like.
https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol
https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol
Step 3: Navigate to www.google.com.
Lets go back to
Restclient and put below info ( main part is session-id which we created
earlier)
Click
on send button, then browser will be navigates to www.google.com
Step 4: Find the Text ( google search text box)
Once
you submit your request, look at the response we got Element ID as 0.
I.e
the index of the element which we are trying to access.
Step 5: Key in Text in google search box
API
reference: https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#sessionsessionidelementidvalue
On
Submit, your browser keys in said text.
This
is how we can integrate selenium with each and every language which supports.
You
can use any programming language that can send HTTP requests to automate
Selenium tests on the browser.