![Page 1: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/1.jpg)
Automating Canvas Applications Using Selenium
Dave Hunt: @davehunt82Andrew Smith: @andismith
![Page 2: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/2.jpg)
What is Canvas?
![Page 3: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/3.jpg)
The Wilderness Downtownhttp://www.thewildernessdowntown.com/
![Page 4: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/4.jpg)
20 Things I Learnedhttp://www.20thingsilearned.com
![Page 5: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/5.jpg)
Pirates Love Daisieshttp://www.pirateslovedaisies.com/
![Page 6: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/6.jpg)
<CANVAS>
![Page 7: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/7.jpg)
DEMOHuman playing Helicopter
![Page 8: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/8.jpg)
Inside Information
function gameData() {return {
altitude: 20,caveCeiling: [90, 80, 85],caveFloor: [10, 5, 10]
}}
![Page 9: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/9.jpg)
Flight School
• Disabled obstacles
• Compensate momentum
• Field of vision
• Minimise requests
![Page 10: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/10.jpg)
DEMOSelenium playing Helicopter without obstacles
![Page 11: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/11.jpg)
Visual Feedback
• Reintroduced obstacles
• Created a ‘Heads up display’
• Fine-tuned field of vision
![Page 12: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/12.jpg)
DEMOSelenium playing Helicopter with HUD
![Page 13: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/13.jpg)
Crash Testing
def testShouldCrashIntoCeiling(self): base_page = BasePage(self.driver) base_page.start_game() base_page.engage_thrusters() base_page.wait_until_crash() self.assertEquals(base_page.helicopter_altitude, 90)
def testShouldCrashIntoFloor(self): base_page = BasePage(self.driver) base_page.start_game() base_page.wait_until_crash() self.assertEquals(base_page.helicopter_altitude, 14)
![Page 14: Automating Canvas Applications Using Selenium](https://reader033.vdocuments.net/reader033/viewer/2022042518/547b21f1b4af9fa5158b4d66/html5/thumbnails/14.jpg)
How can we do this?
• Work together
• Establish testing requirements
• Write automation hooks
• Consider visual feedback
• Create tests
• Cover your tracks