Changes between Initial Version and Version 1 of WebDriverNotes2018


Ignore:
Timestamp:
Oct 12, 2018 3:47:12 PM (6 years ago)
Author:
Jon Davis
Comment:

Notes from 2018 WebKit Contributors Meeting

Legend:

Unmodified
Added
Removed
Modified
  • WebDriverNotes2018

    v1 v1  
     1= Web Driver Notes 2018 =
     2''Presented by Brian Burg''
     3
     4* WebDriver is a test runner for web content in Safari
     5* [demo of WebDriver running test suites]
     6* WebDriver is pretty powerful/flexible
     7    * Create/find/test elements
     8    * Run JavaScript
     9    * Create/resize/close windows
     10* Architecture breakdown
     11    * Test/TestRunner
     12        * Python
     13        * Uses a library (e.g. selenium)
     14            * DOM interaction/api
     15        * Turns each call into REST API calls
     16    * Driver (e.g. SafariDriver, GTKDriver)
     17        * web server with REST API
     18        * receives calls from test/testrunner
     19        * must be able to tell browser what to do
     20        * API is standardized
     21* Test breakdown
     22    * Driver represents a session with Safari
     23        * able to interact with browser (e.g. bind elements by ID, execute scripts)
     24        * able to pass objects from the test into the test to be accessible via javascript
     25    * Able to be run across multiple machines due to REST api system
     26* Safari 12 / WebKit TOT implements W3C WebDriver standard
     27* Safari is fastest WebDriver implementation
     28* Many tests still don't pass (OpenSource/WebDriverTests/TestExpectations.json)
     29* WebDriver for WKWebView
     30    * Currently WebDriver only works in the browser, not within an app
     31    * Idea is to allow each app to opt-in WebDriver for all views within that app
     32* WebDriver for iOS
     33    * Currently WebDriver only works for mac Safari, not iOS Safari
     34    * Requesting a new session would allow an iOS/Simulator Safari driver
     35        * depends on the system (e.g. connected devices, simulators)
     36    * Some API wouldn't work on mobile, as they were developed for desktop
     37        * resizing the window
     38        * click vs touch
     39* RPC protocol is based on WebInspector protocol