The document discusses Appium, an open source tool for automating native, mobile web, and hybrid applications on iOS and Android platforms. It provides an overview of the speaker's background and agenda. Key topics covered include using Appium to test desktop, mobile web, and native apps across platforms like Windows, Mac, iOS, and Android. The document also discusses strategies for improving test performance and working with accessibility identifiers.
12. • platform: must be set to Mac for Appium for Mac
• implicitTimeout: milliseconds to try before giving up on finding an element
• loopDelay: delay in milliseconds between polling in polling loops (e.g. find element)
• mouseMoveSpeed: 0-100 (50 is normal)
• diagnosticsDirectoryLocation: directory for diagnostics output
• screenShotOnError: 1 to enable, 0 to disable
12
19. • accessibilityIdentifier – an identifier that will be used for the
purposes of UI automation
• accessibilityLabel – a label which assistive devices will use to
describe a UI elements
• accessibilityHint – adds context to the accessibility label when more
explanation is necessary
19
29. • iOS and Android
• autoWebView – start in the webview context (really useful for
Cordova apps)
• Android
• ignoreUnimportantViews – can speed up your Android tests
• nativeWebScreenshot – takes the screenshot from UIAutomator
instead of chromedriver 29
30. • iOS
• locationServicesAuthorized – pre-authorizes location services
(prevents an alert)
• Auto[Accept|Dismiss]Alerts – useful to prevent alerts
• nativeWebTap – uses non-javascript taps on web content
• safariIgnoreFraudWarning – allows https without proper certs
• interKeyDelay - time between keystrokes
• sendKeyStrategy – (oneByOne, grouped, or setValue)
30
32. • XPath is slow
• Avoid using it where possible
• If you do use it, do it as a sub-search on a more quickly found element
• Implicit timeout saves code but can slow down tests
• Negative checks (e.g. element does not exist) always take the timeout
• Replace negative checks with findElements() calls and then check the count
32
33. • Because of the way it’s implemented
• Rather than reimplement XPath searching for native elements, we
took a less complicated and brittle approach
We generate an XML representation of the document (EXPENSIVE) then search
• Pros
• XPath is always correct and accurate as we use a standard implementation
• Much easier to maintain
• Cons
• It’s slow because we must generate a model of the entire DOM
33