1. 程式人生 > >Appium之編寫H5應用測試腳本(切換到Webview)

Appium之編寫H5應用測試腳本(切換到Webview)

源碼 ttext med 上下文 測試 elements except 127.0.0.1 code

App使用H5編寫,默認方式找不到元素。啟動後獲取所有上下文,找到webivew_xxxx的,然後進行切換。

源碼:

 1 package MyAppium;
 2 
 3 import io.appium.java_client.android.AndroidDriver;
 4 import org.openqa.selenium.By;
 5 import org.openqa.selenium.WebElement;
 6 import org.openqa.selenium.remote.DesiredCapabilities;
 7 
 8 import java.net.MalformedURLException;
9 import java.net.URL; 10 import java.util.Set; 11 12 /** 13 * @Auther:GongXingRui 14 * @Date:2018/11/1 15 * @Description: 測試App應用(H5) 16 **/ 17 public class ZBuyAppTest { 18 public static void main(String[] args) throws MalformedURLException, InterruptedException { 19 20 DesiredCapabilities capabilities = new
DesiredCapabilities(); 21 capabilities.setCapability("deviceName", "Android Sum"); 22 capabilities.setCapability("automationName", "Appium"); 23 capabilities.setCapability("platformName", "Android"); 24 capabilities.setCapability("noReset", true); 25 // 安卓版本號,保持默認即可
26 // capabilities.setCapability("platformVersion", "7.0"); 27 //啟動包名,使用SDK的uiautomatorviewer查看 28 capabilities.setCapability("appPackage", "cn.com.shopping.halmar"); 29 capabilities.setCapability("appActivity", "com.weshare.jiekuan.activity.LoadActivity"); 30 31 AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 32 Thread.sleep(5000); 33 34 // 獲取所有窗口 35 Set<String> contexts = driver.getContextHandles(); 36 System.out.println("所有窗口上下文:" + contexts); 37 38 // 切換窗口到WEBVIEW 39 driver.context("WEBVIEW_cn.com.shopping.halmar"); 40 41 WebElement webElement = (WebElement) driver.findElements(By.className("_2G-P4GHfk8agQ8HDMa3Who")).get(1); 42 webElement.click(); 43 Thread.sleep(3000); 44 45 String result = driver.findElement(By.className("_3vza4fqJTJUBxJqQm687vB")).getText(); 46 System.out.println("結果:" + result); 47 48 driver.quit(); 49 } 50 }

Appium之編寫H5應用測試腳本(切換到Webview)