Using Appium Client bare APIs (Vision/Classic)
You can access APIs of UiAutomator2 Driver or iOS Driver via these properties. Common interfaces are implemented in appiumDriver, but you can use driver specific interface on androidDriver/iosDriver. For more detail see appium client document.
properties
properties | type | description |
---|---|---|
appiumDriver | AppiumDriver | Appium driver implementation |
androidDriver | AndroidDriver | UiAutomator2 driver implementation |
iosDriver | IOSDriver | iOS driver implementation |
Example
Drivers1.kt
package tutorial.inaction
import org.junit.jupiter.api.Order
import org.junit.jupiter.api.Test
import org.openqa.selenium.By
import shirates.core.configuration.Testrun
import shirates.core.driver.TestDriver.androidDriver
import shirates.core.driver.TestDriver.appiumDriver
import shirates.core.testcode.UITest
@Testrun("testConfig/android/androidSettings/testrun.properties")
class Drivers1 : UITest() {
@Test
@Order(10)
fun findElement() {
// AppiumDriver
val e1 = appiumDriver.findElement(By.className("android.widget.TextView"))
println("e1.text=${e1.text}")
// AndroidDriver
val e2 = androidDriver.findElement(By.className("android.widget.TextView"))
println("e2.text=${e2.text}")
}
}
Drivers2.kt
package tutorial.inaction
import org.junit.jupiter.api.Order
import org.junit.jupiter.api.Test
import org.openqa.selenium.By
import shirates.core.configuration.Testrun
import shirates.core.driver.TestDriver.appiumDriver
import shirates.core.driver.TestDriver.iosDriver
import shirates.core.testcode.UITest
@Testrun("testConfig/ios/iOSSettings/testrun.properties")
class Drivers2 : UITest() {
@Test
@Order(10)
fun findElement() {
// AppiumDriver
val e1 = appiumDriver.findElement(By.className("XCUIElementTypeStaticText"))
println("e1.text=${e1.text}")
// IOSDriver
val e2 = iosDriver.findElement(By.className("XCUIElementTypeStaticText"))
println("e2.text=${e2.text}")
}
}