SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
WebDriver Tests for
                         ExtJS Applications
                              Andrii Dzynia




Saturday, March 2, 13
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Andrii	
  Dzynia




Saturday, March 2, 13
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Andrii	
  Dzynia

                                  Test	
  Engineer/Consultant/Trainer




Saturday, March 2, 13
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Andrii	
  Dzynia

                                  Test	
  Engineer/Consultant/Trainer




Saturday, March 2, 13
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Andrii	
  Dzynia

                                  Test	
  Engineer/Consultant/Trainer




Saturday, March 2, 13
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Andrii	
  Dzynia

                                  Test	
  Engineer/Consultant/Trainer




Saturday, March 2, 13
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Andrii	
  Dzynia

                                             Test	
  Engineer/Consultant/Trainer



                        @adzynia




Saturday, March 2, 13
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Andrii	
  Dzynia

                                              Test	
  Engineer/Consultant/Trainer



                         @adzynia




                        h8p://adzynia.com

Saturday, March 2, 13
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Andrii	
  Dzynia

                                              Test	
  Engineer/Consultant/Trainer



                         @adzynia




                        h8p://adzynia.com

Saturday, March 2, 13
Technical Context

                        • Java Enterprise Application
                        • ExtJS on UI level
                        • WebDriver for Test Automation


Saturday, March 2, 13
What is ExtJS?

                  Ext JS is a pure JavaScript application framework
                  for building interactive web applications
                  using techniques such as
                  Ajax, DHTML and DOM scripting.




Saturday, March 2, 13
Demo




                        http://docs.sencha.com/ext-js/4-1/extjs-build/examples/
Saturday, March 2, 13
First Stage



                            As Usual


Saturday, March 2, 13
Locators
                        • css = button[id *= ‘add_user_action’]
                        • css = .x-panel.x-grid-with-row-lines
                        • name = title

                        • xpath = "//*[@class='x-column-header-text'
                          and text()='Due Date']"


Saturday, March 2, 13
Builders




Saturday, March 2, 13
WaitForExtJs




Saturday, March 2, 13
Custom Waiters




Saturday, March 2, 13
Exceptions




Saturday, March 2, 13
Actions




Saturday, March 2, 13
Results

                        Traditional approach   Code can be too complex




                        Help in simple cases   No reusable components




Saturday, March 2, 13
Who was solving this
                              before?
                        • https://github.com/mariominati/test-www-
                          selenium-extjs/tree/master/Test-WWW-
                          Selenium-ExtJS
                        • https://github.com/asaflevy/SelenuimExtend/ 
                        • https://github.com/cathoderay/selenium-
                          extjs
                        • http://code.google.com/p/extenium/
Saturday, March 2, 13
Second Stage



                        ExtJSElementObjects


Saturday, March 2, 13
ExtJSComboBox




Saturday, March 2, 13
ExtJSComboBox




Saturday, March 2, 13
ExtJSMessageBox




Saturday, March 2, 13
ExtJSGridTable




Saturday, March 2, 13
ExtJSGridTable




Saturday, March 2, 13
Results

                        Reusable components   WebDriver is so slow




                          Can be extended       IE is critical slow!




Saturday, March 2, 13
Stage 3


                        JavaScript Injections



Saturday, March 2, 13
ExtJS API
                 Ext.get('id').dom.value
                 Ext.ComponentQuery.query('panel[cls=myCls]');
                 Ext.select(selector)
                 Ext.core.Element.select(selector, unique, root)
                 Ext.getDom(el)



Saturday, March 2, 13
Demo




Saturday, March 2, 13
JS Injection




Saturday, March 2, 13
Results


                                     Not real-user
                        Faster!
                                       actions



Saturday, March 2, 13
Lessons Learned

                        • Think how you will be testing at first
                        • Work side-by-side with front-end
                          developers
                        • Delegate ExtJS magic for your Elements API


Saturday, March 2, 13
@a
                                                    dz
     me                                               yn
                 @a                                         ia
                   dz
                     yn
                          ia.c
                                 om

                                      ad
                                         zy
                                            n   ia.
                                                   co
                                                        m
Saturday, March 2, 13

Más contenido relacionado

Destacado

here is the Shift
here is the Shifthere is the Shift
here is the Shiftisisshek
 
SORACOM UG Miyagi #1 | IoT通信プラットフォーム SORACOM のご紹介と最新情報
SORACOM UG Miyagi #1 | IoT通信プラットフォーム SORACOM のご紹介と最新情報SORACOM UG Miyagi #1 | IoT通信プラットフォーム SORACOM のご紹介と最新情報
SORACOM UG Miyagi #1 | IoT通信プラットフォーム SORACOM のご紹介と最新情報SORACOM,INC
 
Carrasco antonio casa
Carrasco antonio casaCarrasco antonio casa
Carrasco antonio casamdanavarra
 
Maria Machlowska i Elżbieta Sądel - "Appium: automatyzacja testów w Mobile"
Maria Machlowska i Elżbieta Sądel - "Appium: automatyzacja testów w Mobile"Maria Machlowska i Elżbieta Sądel - "Appium: automatyzacja testów w Mobile"
Maria Machlowska i Elżbieta Sądel - "Appium: automatyzacja testów w Mobile"kraqa
 
Цастын баруун орны халх М.Баянбулаг
Цастын баруун орны халх М.БаянбулагЦастын баруун орны халх М.Баянбулаг
Цастын баруун орны халх М.БаянбулагUlaanbaatar, Mongolia
 
Chemoinformatics in Action
Chemoinformatics in ActionChemoinformatics in Action
Chemoinformatics in ActionSSA KPI
 
Samsung galaxy s® iii
Samsung galaxy s® iiiSamsung galaxy s® iii
Samsung galaxy s® iiiRene Borja
 
Customer service behaviors 11 2012
Customer service behaviors 11 2012Customer service behaviors 11 2012
Customer service behaviors 11 2012Lynne Reed
 

Destacado (14)

here is the Shift
here is the Shifthere is the Shift
here is the Shift
 
SORACOM UG Miyagi #1 | IoT通信プラットフォーム SORACOM のご紹介と最新情報
SORACOM UG Miyagi #1 | IoT通信プラットフォーム SORACOM のご紹介と最新情報SORACOM UG Miyagi #1 | IoT通信プラットフォーム SORACOM のご紹介と最新情報
SORACOM UG Miyagi #1 | IoT通信プラットフォーム SORACOM のご紹介と最新情報
 
Carrasco antonio casa
Carrasco antonio casaCarrasco antonio casa
Carrasco antonio casa
 
Selenium
SeleniumSelenium
Selenium
 
Dr Janelle Chiasera discusses Developing an Institutional Equity Plan
Dr Janelle Chiasera discusses Developing an Institutional Equity PlanDr Janelle Chiasera discusses Developing an Institutional Equity Plan
Dr Janelle Chiasera discusses Developing an Institutional Equity Plan
 
Maria Machlowska i Elżbieta Sądel - "Appium: automatyzacja testów w Mobile"
Maria Machlowska i Elżbieta Sądel - "Appium: automatyzacja testów w Mobile"Maria Machlowska i Elżbieta Sądel - "Appium: automatyzacja testów w Mobile"
Maria Machlowska i Elżbieta Sądel - "Appium: automatyzacja testów w Mobile"
 
Цастын баруун орны халх М.Баянбулаг
Цастын баруун орны халх М.БаянбулагЦастын баруун орны халх М.Баянбулаг
Цастын баруун орны халх М.Баянбулаг
 
Xml+messaging+with+soap
Xml+messaging+with+soapXml+messaging+with+soap
Xml+messaging+with+soap
 
Chemoinformatics in Action
Chemoinformatics in ActionChemoinformatics in Action
Chemoinformatics in Action
 
INOBACION TECNICA Y DESARROLLO SOSTENIBLE
INOBACION TECNICA Y DESARROLLO SOSTENIBLE INOBACION TECNICA Y DESARROLLO SOSTENIBLE
INOBACION TECNICA Y DESARROLLO SOSTENIBLE
 
Exj 5
Exj 5Exj 5
Exj 5
 
Samsung galaxy s® iii
Samsung galaxy s® iiiSamsung galaxy s® iii
Samsung galaxy s® iii
 
Customer service behaviors 11 2012
Customer service behaviors 11 2012Customer service behaviors 11 2012
Customer service behaviors 11 2012
 
Tama 3 b3
Tama 3 b3Tama 3 b3
Tama 3 b3
 

Similar a ExtJS WebDriver

So long, and thanks for all the tests (Scottish Developers 2014)
So long, and thanks for all the tests (Scottish Developers 2014)So long, and thanks for all the tests (Scottish Developers 2014)
So long, and thanks for all the tests (Scottish Developers 2014)Seb Rose
 
The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]
The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]
The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]Jason Rhodes
 
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]Jason Rhodes
 
20130301 onbetwist eindhoven
20130301 onbetwist eindhoven20130301 onbetwist eindhoven
20130301 onbetwist eindhovenErik Duval
 
Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013   Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013 Pablo Godel
 
jQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVCjQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVCTroy Miles
 
HTML5.tx 2013: Embedded JavaScript, HTML5 and the Internet of Things
HTML5.tx 2013: Embedded JavaScript, HTML5 and the Internet of ThingsHTML5.tx 2013: Embedded JavaScript, HTML5 and the Internet of Things
HTML5.tx 2013: Embedded JavaScript, HTML5 and the Internet of ThingsJesse Cravens
 
Information Architecture the Basics - User Needs
Information Architecture the Basics - User NeedsInformation Architecture the Basics - User Needs
Information Architecture the Basics - User NeedsKero Yu
 
Passing a Front end Developer interview
Passing a Front end Developer interview Passing a Front end Developer interview
Passing a Front end Developer interview tonyfarnsworth
 
Building Lean, talk for #IWDevs
Building Lean, talk for #IWDevsBuilding Lean, talk for #IWDevs
Building Lean, talk for #IWDevsBenjamin Dyer
 

Similar a ExtJS WebDriver (15)

What's new in Rails5?
What's new in Rails5?What's new in Rails5?
What's new in Rails5?
 
So long, and thanks for all the tests (Scottish Developers 2014)
So long, and thanks for all the tests (Scottish Developers 2014)So long, and thanks for all the tests (Scottish Developers 2014)
So long, and thanks for all the tests (Scottish Developers 2014)
 
Requirejs
RequirejsRequirejs
Requirejs
 
The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]
The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]
The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]
 
Wphackergalaxy
WphackergalaxyWphackergalaxy
Wphackergalaxy
 
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
 
20130301 onbetwist eindhoven
20130301 onbetwist eindhoven20130301 onbetwist eindhoven
20130301 onbetwist eindhoven
 
Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013   Symfony2 and MongoDB - MidwestPHP 2013
Symfony2 and MongoDB - MidwestPHP 2013
 
jQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVCjQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVC
 
HTML5.tx 2013: Embedded JavaScript, HTML5 and the Internet of Things
HTML5.tx 2013: Embedded JavaScript, HTML5 and the Internet of ThingsHTML5.tx 2013: Embedded JavaScript, HTML5 and the Internet of Things
HTML5.tx 2013: Embedded JavaScript, HTML5 and the Internet of Things
 
Information Architecture the Basics - User Needs
Information Architecture the Basics - User NeedsInformation Architecture the Basics - User Needs
Information Architecture the Basics - User Needs
 
Passing a Front end Developer interview
Passing a Front end Developer interview Passing a Front end Developer interview
Passing a Front end Developer interview
 
Rails Intro & Tutorial
Rails Intro & TutorialRails Intro & Tutorial
Rails Intro & Tutorial
 
Storyplayer
StoryplayerStoryplayer
Storyplayer
 
Building Lean, talk for #IWDevs
Building Lean, talk for #IWDevsBuilding Lean, talk for #IWDevs
Building Lean, talk for #IWDevs
 

Más de Andrii Dzynia

Continuous Delivery as you want it
Continuous Delivery as you want itContinuous Delivery as you want it
Continuous Delivery as you want itAndrii Dzynia
 
Test coaching your agile team
Test coaching your agile teamTest coaching your agile team
Test coaching your agile teamAndrii Dzynia
 
What does it mean to be a test engineer?
What does it mean to be a test engineer?What does it mean to be a test engineer?
What does it mean to be a test engineer?Andrii Dzynia
 
Exploring your unit tests
Exploring your unit testsExploring your unit tests
Exploring your unit testsAndrii Dzynia
 
Hermetic environment for your functional tests
Hermetic environment for your functional testsHermetic environment for your functional tests
Hermetic environment for your functional testsAndrii Dzynia
 
Quality Built In @ Spotify
Quality Built In @ SpotifyQuality Built In @ Spotify
Quality Built In @ SpotifyAndrii Dzynia
 
Applying testing mindset to software development
Applying testing mindset to software developmentApplying testing mindset to software development
Applying testing mindset to software developmentAndrii Dzynia
 
Appium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAppium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAndrii Dzynia
 
How to Manage Testing in Dynamic World
How to Manage Testing in Dynamic WorldHow to Manage Testing in Dynamic World
How to Manage Testing in Dynamic WorldAndrii Dzynia
 
10 правил agile тестировщика IT-Brunch
10 правил agile тестировщика IT-Brunch10 правил agile тестировщика IT-Brunch
10 правил agile тестировщика IT-BrunchAndrii Dzynia
 
Working Software Over Comprehensive Documentation
Working Software Over Comprehensive DocumentationWorking Software Over Comprehensive Documentation
Working Software Over Comprehensive DocumentationAndrii Dzynia
 
«Самоорганизуй» себя, пока не «самоорганизовали» тебя
«Самоорганизуй» себя, пока не «самоорганизовали» тебя«Самоорганизуй» себя, пока не «самоорганизовали» тебя
«Самоорганизуй» себя, пока не «самоорганизовали» тебяAndrii Dzynia
 
Как не нужно писать Gherkin сценарии
Как не нужно писать Gherkin сценарииКак не нужно писать Gherkin сценарии
Как не нужно писать Gherkin сценарииAndrii Dzynia
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 
10 правил Agile тестировщика
10 правил Agile тестировщика10 правил Agile тестировщика
10 правил Agile тестировщикаAndrii Dzynia
 
Что такое Exploratory Testing?
Что такое Exploratory Testing?Что такое Exploratory Testing?
Что такое Exploratory Testing?Andrii Dzynia
 
Software testing 2.0
Software testing 2.0Software testing 2.0
Software testing 2.0Andrii Dzynia
 
Тестировщики Vs Программисты
Тестировщики Vs ПрограммистыТестировщики Vs Программисты
Тестировщики Vs ПрограммистыAndrii Dzynia
 
Testing Dojo Kyiv - Testing Heuristics
Testing Dojo Kyiv - Testing HeuristicsTesting Dojo Kyiv - Testing Heuristics
Testing Dojo Kyiv - Testing HeuristicsAndrii Dzynia
 

Más de Andrii Dzynia (20)

Continuous Delivery as you want it
Continuous Delivery as you want itContinuous Delivery as you want it
Continuous Delivery as you want it
 
Test coaching your agile team
Test coaching your agile teamTest coaching your agile team
Test coaching your agile team
 
Testing at Spotify
Testing at SpotifyTesting at Spotify
Testing at Spotify
 
What does it mean to be a test engineer?
What does it mean to be a test engineer?What does it mean to be a test engineer?
What does it mean to be a test engineer?
 
Exploring your unit tests
Exploring your unit testsExploring your unit tests
Exploring your unit tests
 
Hermetic environment for your functional tests
Hermetic environment for your functional testsHermetic environment for your functional tests
Hermetic environment for your functional tests
 
Quality Built In @ Spotify
Quality Built In @ SpotifyQuality Built In @ Spotify
Quality Built In @ Spotify
 
Applying testing mindset to software development
Applying testing mindset to software developmentApplying testing mindset to software development
Applying testing mindset to software development
 
Appium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAppium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriver
 
How to Manage Testing in Dynamic World
How to Manage Testing in Dynamic WorldHow to Manage Testing in Dynamic World
How to Manage Testing in Dynamic World
 
10 правил agile тестировщика IT-Brunch
10 правил agile тестировщика IT-Brunch10 правил agile тестировщика IT-Brunch
10 правил agile тестировщика IT-Brunch
 
Working Software Over Comprehensive Documentation
Working Software Over Comprehensive DocumentationWorking Software Over Comprehensive Documentation
Working Software Over Comprehensive Documentation
 
«Самоорганизуй» себя, пока не «самоорганизовали» тебя
«Самоорганизуй» себя, пока не «самоорганизовали» тебя«Самоорганизуй» себя, пока не «самоорганизовали» тебя
«Самоорганизуй» себя, пока не «самоорганизовали» тебя
 
Как не нужно писать Gherkin сценарии
Как не нужно писать Gherkin сценарииКак не нужно писать Gherkin сценарии
Как не нужно писать Gherkin сценарии
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
10 правил Agile тестировщика
10 правил Agile тестировщика10 правил Agile тестировщика
10 правил Agile тестировщика
 
Что такое Exploratory Testing?
Что такое Exploratory Testing?Что такое Exploratory Testing?
Что такое Exploratory Testing?
 
Software testing 2.0
Software testing 2.0Software testing 2.0
Software testing 2.0
 
Тестировщики Vs Программисты
Тестировщики Vs ПрограммистыТестировщики Vs Программисты
Тестировщики Vs Программисты
 
Testing Dojo Kyiv - Testing Heuristics
Testing Dojo Kyiv - Testing HeuristicsTesting Dojo Kyiv - Testing Heuristics
Testing Dojo Kyiv - Testing Heuristics
 

Último

New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Último (20)

New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

ExtJS WebDriver

  • 1. WebDriver Tests for ExtJS Applications Andrii Dzynia Saturday, March 2, 13
  • 2.                              Andrii  Dzynia Saturday, March 2, 13
  • 3.                              Andrii  Dzynia Test  Engineer/Consultant/Trainer Saturday, March 2, 13
  • 4.                              Andrii  Dzynia Test  Engineer/Consultant/Trainer Saturday, March 2, 13
  • 5.                              Andrii  Dzynia Test  Engineer/Consultant/Trainer Saturday, March 2, 13
  • 6.                              Andrii  Dzynia Test  Engineer/Consultant/Trainer Saturday, March 2, 13
  • 7.                              Andrii  Dzynia Test  Engineer/Consultant/Trainer @adzynia Saturday, March 2, 13
  • 8.                              Andrii  Dzynia Test  Engineer/Consultant/Trainer @adzynia h8p://adzynia.com Saturday, March 2, 13
  • 9.                              Andrii  Dzynia Test  Engineer/Consultant/Trainer @adzynia h8p://adzynia.com Saturday, March 2, 13
  • 10. Technical Context • Java Enterprise Application • ExtJS on UI level • WebDriver for Test Automation Saturday, March 2, 13
  • 11. What is ExtJS? Ext JS is a pure JavaScript application framework for building interactive web applications using techniques such as Ajax, DHTML and DOM scripting. Saturday, March 2, 13
  • 12. Demo http://docs.sencha.com/ext-js/4-1/extjs-build/examples/ Saturday, March 2, 13
  • 13. First Stage As Usual Saturday, March 2, 13
  • 14. Locators • css = button[id *= ‘add_user_action’] • css = .x-panel.x-grid-with-row-lines • name = title • xpath = "//*[@class='x-column-header-text' and text()='Due Date']" Saturday, March 2, 13
  • 20. Results Traditional approach Code can be too complex Help in simple cases No reusable components Saturday, March 2, 13
  • 21. Who was solving this before? • https://github.com/mariominati/test-www- selenium-extjs/tree/master/Test-WWW- Selenium-ExtJS • https://github.com/asaflevy/SelenuimExtend/  • https://github.com/cathoderay/selenium- extjs • http://code.google.com/p/extenium/ Saturday, March 2, 13
  • 22. Second Stage ExtJSElementObjects Saturday, March 2, 13
  • 28. Results Reusable components WebDriver is so slow Can be extended IE is critical slow! Saturday, March 2, 13
  • 29. Stage 3 JavaScript Injections Saturday, March 2, 13
  • 30. ExtJS API Ext.get('id').dom.value Ext.ComponentQuery.query('panel[cls=myCls]'); Ext.select(selector) Ext.core.Element.select(selector, unique, root) Ext.getDom(el) Saturday, March 2, 13
  • 33. Results Not real-user Faster! actions Saturday, March 2, 13
  • 34. Lessons Learned • Think how you will be testing at first • Work side-by-side with front-end developers • Delegate ExtJS magic for your Elements API Saturday, March 2, 13
  • 35. @a dz me yn @a ia dz yn ia.c om ad zy n ia. co m Saturday, March 2, 13