SlideShare a Scribd company logo
1 of 23
SELENIUM
• 
• 
•
• 
• 
• 
• 
• 
• 
• 
• 
• 
•
SELENIUM 
• 
HTTP://WWW.SELENIUMHQ.ORG/ 
•
• 
• 
• 
• 
• 
•
SELENIUM IDE 
• HTTP://GOO.GL/FUXCLZ
SELENIUM IDE 
• 
• 
• 
•
WEBDRIVER 
• 
• 
• HTTP://GOO.GL/AMKSRL 
• HTTP://GOO.GL/ZVITGS
WEBDRIVER 
• 
• 
IWebDriver driver = new ChromeDriver(); 
driver.Navigate().GoToUrl("http://localhost:57536/"); 
IWebElement element = driver.FindElement(By.Id(UserName")); 
case-sensitive!
WEBDRIVER 
• 
• 
• 
IWebElement element = driver.FindElement(By.Id("confirm")); 
element.Click(); 
ReadOnlyCollection<IWebElement> elements = driver.FindElements(By.Name("sex")); 
// or use By.Id if any 
elements[1].Click(); 
new SelectElement(driver.FindElement(By.Id("month"))).SelectByText("Mar");
WEBDRIVER 
• 
• 
ReadOnlyCollection<IWebElement> elements = driver.FindElements(By.Name("lang")); 
// or use By.Id if any 
elements[1].Click(); 
elements[2].Click(); 
IWebElement element = driver.FindElement(By.Id("name")); 
element.SendKyes("pete");
WEBDRIVER 
• REGISTRATION 
[Test] 
public void Can_Register() 
{ 
IWebDriver driver = new ChromeDriver("../../"); 
driver.Navigate().GoToUrl(@"G:meetupsampleregister.html"); 
driver.FindElement(By.Id("username")).SendKeys("pete"); 
driver.FindElement(By.Id("password")).SendKeys("123456"); 
new SelectElement(driver.FindElement(By.Id("title"))).SelectByText("Mr"); 
driver.FindElements(By.Name("sex"))[1].Click(); 
driver.FindElements(By.Name("lang"))[1].Click(); 
driver.FindElements(By.Name("lang"))[2].Click(); 
driver.FindElement(By.Id("register")).Click(); 
Assert.True(driver.FindElement(By.Id("done")).Text == "Registration Completed!"); 
}
• 
• 
driver.FindElement(By.Id("username")).SendKeys("pete"); 
_username.SendKeys("pete"); 
[FindsBy(How = How.Id, Using = "username")] 
private IWebElement _username; 
PageFactory.InitElements(driver, this);
• 
• 
[Test] 
public void Can_Register() 
{ 
IWebDriver driver = new ChromeDriver("../../"); 
RegistrationPage registrationPage = new RegistrationPage(driver); 
registrationPage.Navigate(); 
RegistrationCompletedPage completedPage = registrationPage.Register(); 
Assert.True(completedPage.Exists()); 
}
IWebDriver driver = new ChromeDriver("../../"); 
RegistrationPage registrationPage = new RegistrationPage(driver); 
registrationPage.Navigate(); 
LoginPage loginPage = registrationPage.Register("pete", "123456", "Pete"); 
loginPage.LogIn("pete", "123456"); 
PaymentPage paymentPage = new PaymentPage(driver); 
paymentPage.Navigate(); 
ThirdPartyPage thirdPartyPage = paymentPage.Deposit("41523365", 10); 
DepositCompletedPage completedPage = thirdPartyPage.Verify("pete", "123456"); 
Assert.True(completedPage.Succeeded());
FLUENTAUTOMATION 
• 
• 
• 
• 
• 
I.Open(@"G:meetupsampleregister.html") 
.Enter("pete").In("#username") 
.Enter("123456").In("#password") 
.Select(Option.Value, "Mr").From("#title") 
.Click(":radio[value='2']") 
.Click(":checkbox[value='C++']") 
.Click(":checkbox[value='C#']") 
.Click("#register") 
.Assert.Exists("#done").Text("Registration Completed!");
• HTTP://GOO.GL/PXHBTY 
SeleniumWebDriver.Bootstrap(SeleniumWebDriver.Browser.PhantomJs);
Hub 
Node Node Node Node Node
Devs 
Repository 
(GitHub / Bitbucket / Stash / TFS / …) 
Build Server 
Push 
Pull 
Notify 
Build > Run Tests (Unit Tests / 
Integrations Tests / Selenium Tests / …) 
(TeamCity / Jenkins / TFS / …)
• 
• 
• 
• 
• 
• 
• 
• 
•
WE ARE HIRING! 
• 
• 
• 
• 
•
THANKS FOR YOUR TIME 
ANY QUESTIONS ARE WELCOME

More Related Content

What's hot

Functional testing with capybara
Functional testing with capybaraFunctional testing with capybara
Functional testing with capybarakoffeinfrei
 
Html server control - ASP. NET with c#
Html server control - ASP. NET with c#Html server control - ASP. NET with c#
Html server control - ASP. NET with c#priya Nithya
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the FinishYehuda Katz
 
Velocity EU 2014 — Offline-first web apps
Velocity EU 2014 — Offline-first web appsVelocity EU 2014 — Offline-first web apps
Velocity EU 2014 — Offline-first web appsandrewsmatt
 
Javascript first-class citizenery
Javascript first-class citizeneryJavascript first-class citizenery
Javascript first-class citizenerytoddbr
 
Embracing Capybara
Embracing CapybaraEmbracing Capybara
Embracing CapybaraTim Moore
 
SproutCore is Awesome - HTML5 Summer DevFest
SproutCore is Awesome - HTML5 Summer DevFestSproutCore is Awesome - HTML5 Summer DevFest
SproutCore is Awesome - HTML5 Summer DevFesttomdale
 
Jqeury ajax plugins
Jqeury ajax pluginsJqeury ajax plugins
Jqeury ajax pluginsInbal Geffen
 
HTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LAB
HTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LABHTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LAB
HTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LABpriya Nithya
 
정오의 데이트 for iOS 코드 정리
정오의 데이트 for iOS 코드 정리정오의 데이트 for iOS 코드 정리
정오의 데이트 for iOS 코드 정리태준 김
 
How I Became a WordPress Hacker
How I Became a WordPress HackerHow I Became a WordPress Hacker
How I Became a WordPress HackerMike Zielonka
 
Polyglot automation - QA Fest - 2015
Polyglot automation - QA Fest - 2015Polyglot automation - QA Fest - 2015
Polyglot automation - QA Fest - 2015Iakiv Kramarenko
 
Better Testing With PHP Unit
Better Testing With PHP UnitBetter Testing With PHP Unit
Better Testing With PHP Unitsitecrafting
 
Djangoアプリのデプロイに関するプラクティス / Deploy django application
Djangoアプリのデプロイに関するプラクティス / Deploy django applicationDjangoアプリのデプロイに関するプラクティス / Deploy django application
Djangoアプリのデプロイに関するプラクティス / Deploy django applicationMasashi Shibata
 

What's hot (20)

Code ceptioninstallation
Code ceptioninstallationCode ceptioninstallation
Code ceptioninstallation
 
Functional testing with capybara
Functional testing with capybaraFunctional testing with capybara
Functional testing with capybara
 
Html server control - ASP. NET with c#
Html server control - ASP. NET with c#Html server control - ASP. NET with c#
Html server control - ASP. NET with c#
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the Finish
 
Velocity EU 2014 — Offline-first web apps
Velocity EU 2014 — Offline-first web appsVelocity EU 2014 — Offline-first web apps
Velocity EU 2014 — Offline-first web apps
 
Javascript first-class citizenery
Javascript first-class citizeneryJavascript first-class citizenery
Javascript first-class citizenery
 
Embracing Capybara
Embracing CapybaraEmbracing Capybara
Embracing Capybara
 
Learning Svelte
Learning SvelteLearning Svelte
Learning Svelte
 
Grails plugin
Grails pluginGrails plugin
Grails plugin
 
SproutCore is Awesome - HTML5 Summer DevFest
SproutCore is Awesome - HTML5 Summer DevFestSproutCore is Awesome - HTML5 Summer DevFest
SproutCore is Awesome - HTML5 Summer DevFest
 
Ajax
AjaxAjax
Ajax
 
Jqeury ajax plugins
Jqeury ajax pluginsJqeury ajax plugins
Jqeury ajax plugins
 
HTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LAB
HTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LABHTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LAB
HTTP REQUEST RESPONSE OBJECT - WEB APPLICATION USING C# LAB
 
Svelte JS introduction
Svelte JS introductionSvelte JS introduction
Svelte JS introduction
 
정오의 데이트 for iOS 코드 정리
정오의 데이트 for iOS 코드 정리정오의 데이트 for iOS 코드 정리
정오의 데이트 for iOS 코드 정리
 
How I Became a WordPress Hacker
How I Became a WordPress HackerHow I Became a WordPress Hacker
How I Became a WordPress Hacker
 
Polyglot automation - QA Fest - 2015
Polyglot automation - QA Fest - 2015Polyglot automation - QA Fest - 2015
Polyglot automation - QA Fest - 2015
 
Better Testing With PHP Unit
Better Testing With PHP UnitBetter Testing With PHP Unit
Better Testing With PHP Unit
 
第26回PHP勉強会
第26回PHP勉強会第26回PHP勉強会
第26回PHP勉強会
 
Djangoアプリのデプロイに関するプラクティス / Deploy django application
Djangoアプリのデプロイに関するプラクティス / Deploy django applicationDjangoアプリのデプロイに関するプラクティス / Deploy django application
Djangoアプリのデプロイに関するプラクティス / Deploy django application
 

Similar to Web Automation Testing Using Selenium

How to define mobile automation strategy
How to define mobile automation strategyHow to define mobile automation strategy
How to define mobile automation strategyMesut Güneş
 
How to define mobile automation strategy
How to define mobile automation strategyHow to define mobile automation strategy
How to define mobile automation strategySelin Gungor
 
Session on "The Screenplay Pattern: Better Interactions for Better Automation...
Session on "The Screenplay Pattern: Better Interactions for Better Automation...Session on "The Screenplay Pattern: Better Interactions for Better Automation...
Session on "The Screenplay Pattern: Better Interactions for Better Automation...Agile Testing Alliance
 
Testing web application with Python
Testing web application with PythonTesting web application with Python
Testing web application with PythonJachym Cepicky
 
Google
GoogleGoogle
Googlesoon
 
Join the darkside: Selenium testing with Nightwatch.js
Join the darkside: Selenium testing with Nightwatch.jsJoin the darkside: Selenium testing with Nightwatch.js
Join the darkside: Selenium testing with Nightwatch.jsSeth McLaughlin
 
Integration Test Cucumber + Webrat + Selenium
Integration Test Cucumber + Webrat + SeleniumIntegration Test Cucumber + Webrat + Selenium
Integration Test Cucumber + Webrat + Seleniumtka
 
HTML5 & The Open Web - at Nackademin
HTML5 & The Open Web -  at NackademinHTML5 & The Open Web -  at Nackademin
HTML5 & The Open Web - at NackademinRobert Nyman
 
Future of Web Apps: Google Gears
Future of Web Apps: Google GearsFuture of Web Apps: Google Gears
Future of Web Apps: Google Gearsdion
 
Whys and Hows of Automation
Whys and Hows of AutomationWhys and Hows of Automation
Whys and Hows of AutomationvodQA
 
Automated Testing with Google Chrome - WebDriver- ChromeDriver
Automated Testing with Google Chrome - WebDriver- ChromeDriverAutomated Testing with Google Chrome - WebDriver- ChromeDriver
Automated Testing with Google Chrome - WebDriver- ChromeDriverManoj Kumar Kumar
 
Web scraping 101 with goutte
Web scraping 101 with goutteWeb scraping 101 with goutte
Web scraping 101 with goutteJoshua Copeland
 
Short intro to JQuery and Modernizr
Short intro to JQuery and ModernizrShort intro to JQuery and Modernizr
Short intro to JQuery and ModernizrJussi Pohjolainen
 
Anay - Fluent interfaces in testing
Anay - Fluent interfaces in testingAnay - Fluent interfaces in testing
Anay - Fluent interfaces in testingvodQA
 
Intro to Selenium UI Tests with pytest & some useful pytest plugins
Intro to Selenium UI Tests with pytest & some useful pytest pluginsIntro to Selenium UI Tests with pytest & some useful pytest plugins
Intro to Selenium UI Tests with pytest & some useful pytest pluginsAsif Mohaimen
 
Week 4 - jQuery + Ajax
Week 4 - jQuery + AjaxWeek 4 - jQuery + Ajax
Week 4 - jQuery + Ajaxbaygross
 
Introduction to jQuery - The basics
Introduction to jQuery - The basicsIntroduction to jQuery - The basics
Introduction to jQuery - The basicsMaher Hossain
 

Similar to Web Automation Testing Using Selenium (20)

How to define mobile automation strategy
How to define mobile automation strategyHow to define mobile automation strategy
How to define mobile automation strategy
 
How to define mobile automation strategy
How to define mobile automation strategyHow to define mobile automation strategy
How to define mobile automation strategy
 
Session on "The Screenplay Pattern: Better Interactions for Better Automation...
Session on "The Screenplay Pattern: Better Interactions for Better Automation...Session on "The Screenplay Pattern: Better Interactions for Better Automation...
Session on "The Screenplay Pattern: Better Interactions for Better Automation...
 
Testing web application with Python
Testing web application with PythonTesting web application with Python
Testing web application with Python
 
Google
GoogleGoogle
Google
 
Join the darkside: Selenium testing with Nightwatch.js
Join the darkside: Selenium testing with Nightwatch.jsJoin the darkside: Selenium testing with Nightwatch.js
Join the darkside: Selenium testing with Nightwatch.js
 
Integration Test Cucumber + Webrat + Selenium
Integration Test Cucumber + Webrat + SeleniumIntegration Test Cucumber + Webrat + Selenium
Integration Test Cucumber + Webrat + Selenium
 
Webdriver
WebdriverWebdriver
Webdriver
 
HTML5 & The Open Web - at Nackademin
HTML5 & The Open Web -  at NackademinHTML5 & The Open Web -  at Nackademin
HTML5 & The Open Web - at Nackademin
 
Future of Web Apps: Google Gears
Future of Web Apps: Google GearsFuture of Web Apps: Google Gears
Future of Web Apps: Google Gears
 
Whys and Hows of Automation
Whys and Hows of AutomationWhys and Hows of Automation
Whys and Hows of Automation
 
JQuery
JQueryJQuery
JQuery
 
Web driver training
Web driver trainingWeb driver training
Web driver training
 
Automated Testing with Google Chrome - WebDriver- ChromeDriver
Automated Testing with Google Chrome - WebDriver- ChromeDriverAutomated Testing with Google Chrome - WebDriver- ChromeDriver
Automated Testing with Google Chrome - WebDriver- ChromeDriver
 
Web scraping 101 with goutte
Web scraping 101 with goutteWeb scraping 101 with goutte
Web scraping 101 with goutte
 
Short intro to JQuery and Modernizr
Short intro to JQuery and ModernizrShort intro to JQuery and Modernizr
Short intro to JQuery and Modernizr
 
Anay - Fluent interfaces in testing
Anay - Fluent interfaces in testingAnay - Fluent interfaces in testing
Anay - Fluent interfaces in testing
 
Intro to Selenium UI Tests with pytest & some useful pytest plugins
Intro to Selenium UI Tests with pytest & some useful pytest pluginsIntro to Selenium UI Tests with pytest & some useful pytest plugins
Intro to Selenium UI Tests with pytest & some useful pytest plugins
 
Week 4 - jQuery + Ajax
Week 4 - jQuery + AjaxWeek 4 - jQuery + Ajax
Week 4 - jQuery + Ajax
 
Introduction to jQuery - The basics
Introduction to jQuery - The basicsIntroduction to jQuery - The basics
Introduction to jQuery - The basics
 

Recently uploaded

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 

Recently uploaded (20)

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 

Web Automation Testing Using Selenium

  • 3. • • • • • • • • • •
  • 5. • • • • • •
  • 6. SELENIUM IDE • HTTP://GOO.GL/FUXCLZ
  • 7. SELENIUM IDE • • • •
  • 8. WEBDRIVER • • • HTTP://GOO.GL/AMKSRL • HTTP://GOO.GL/ZVITGS
  • 9. WEBDRIVER • • IWebDriver driver = new ChromeDriver(); driver.Navigate().GoToUrl("http://localhost:57536/"); IWebElement element = driver.FindElement(By.Id(UserName")); case-sensitive!
  • 10. WEBDRIVER • • • IWebElement element = driver.FindElement(By.Id("confirm")); element.Click(); ReadOnlyCollection<IWebElement> elements = driver.FindElements(By.Name("sex")); // or use By.Id if any elements[1].Click(); new SelectElement(driver.FindElement(By.Id("month"))).SelectByText("Mar");
  • 11. WEBDRIVER • • ReadOnlyCollection<IWebElement> elements = driver.FindElements(By.Name("lang")); // or use By.Id if any elements[1].Click(); elements[2].Click(); IWebElement element = driver.FindElement(By.Id("name")); element.SendKyes("pete");
  • 12. WEBDRIVER • REGISTRATION [Test] public void Can_Register() { IWebDriver driver = new ChromeDriver("../../"); driver.Navigate().GoToUrl(@"G:meetupsampleregister.html"); driver.FindElement(By.Id("username")).SendKeys("pete"); driver.FindElement(By.Id("password")).SendKeys("123456"); new SelectElement(driver.FindElement(By.Id("title"))).SelectByText("Mr"); driver.FindElements(By.Name("sex"))[1].Click(); driver.FindElements(By.Name("lang"))[1].Click(); driver.FindElements(By.Name("lang"))[2].Click(); driver.FindElement(By.Id("register")).Click(); Assert.True(driver.FindElement(By.Id("done")).Text == "Registration Completed!"); }
  • 13. • • driver.FindElement(By.Id("username")).SendKeys("pete"); _username.SendKeys("pete"); [FindsBy(How = How.Id, Using = "username")] private IWebElement _username; PageFactory.InitElements(driver, this);
  • 14. • • [Test] public void Can_Register() { IWebDriver driver = new ChromeDriver("../../"); RegistrationPage registrationPage = new RegistrationPage(driver); registrationPage.Navigate(); RegistrationCompletedPage completedPage = registrationPage.Register(); Assert.True(completedPage.Exists()); }
  • 15. IWebDriver driver = new ChromeDriver("../../"); RegistrationPage registrationPage = new RegistrationPage(driver); registrationPage.Navigate(); LoginPage loginPage = registrationPage.Register("pete", "123456", "Pete"); loginPage.LogIn("pete", "123456"); PaymentPage paymentPage = new PaymentPage(driver); paymentPage.Navigate(); ThirdPartyPage thirdPartyPage = paymentPage.Deposit("41523365", 10); DepositCompletedPage completedPage = thirdPartyPage.Verify("pete", "123456"); Assert.True(completedPage.Succeeded());
  • 16. FLUENTAUTOMATION • • • • • I.Open(@"G:meetupsampleregister.html") .Enter("pete").In("#username") .Enter("123456").In("#password") .Select(Option.Value, "Mr").From("#title") .Click(":radio[value='2']") .Click(":checkbox[value='C++']") .Click(":checkbox[value='C#']") .Click("#register") .Assert.Exists("#done").Text("Registration Completed!");
  • 18. Hub Node Node Node Node Node
  • 19. Devs Repository (GitHub / Bitbucket / Stash / TFS / …) Build Server Push Pull Notify Build > Run Tests (Unit Tests / Integrations Tests / Selenium Tests / …) (TeamCity / Jenkins / TFS / …)
  • 20.
  • 21. • • • • • • • • •
  • 22. WE ARE HIRING! • • • • •
  • 23. THANKS FOR YOUR TIME ANY QUESTIONS ARE WELCOME