Hybrid App(混合模式移动应用)
是指介于web-app、native-app这两者之间的app
兼具Native App良好用户交互体验的优势
和
是指介于web-app、native-app这两者之间的app
兼具Native App良好用户交互体验的优势
和
Web App跨平台开发的优势
import io.appium.java_client.AppiumDriver; import io.appium.java_client.android.AndroidDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.Assert; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.net.MalformedURLException; import java.net.URL; import static java.lang.Thread.sleep; public class HybridAppTest { private AppiumDriver driver; @BeforeMethod public void beforeMethod() throws MalformedURLException, InterruptedException { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("platformName","Android"); capabilities.setCapability("platformVersion","7.1.1"); capabilities.setCapability("deviceName","3216e430"); capabilities.setCapability("browserName","Chrome"); //Chrome capabilities.setCapability("appPackage","com.android.browser"); //Chrome包名 capabilities.setCapability("appActivity",".BrowserActivity"); //Chrome启动页 capabilities.setCapability("unicodeKeyboard",true); capabilities.setCapability("resetKeyboard",true); capabilities.setCapability("noReset",true); capabilities.setCapability("noSign",true); URL url = new URL("http://127.0.0.1:4723/wd/hub"); driver = new AndroidDriver(url, capabilities); sleep(2000); } @Test public void hybridApp() throws InterruptedException { driver.get("http://www.cnblogs.com/yjlch1016/"); sleep(2000); driver.context("NATIVE_APP"); //切换到原生 sleep(1000); driver.findElementById("com.android.chrome:id/menu_button").click(); //点击右上角的菜单 sleep(2000); driver.findElementByAccessibilityId("历史记录").click(); //点击历史纪录 sleep(2000); driver.navigate().back(); //手机返回键 sleep(2000); driver.context("CHROMIUM"); //切换到H5 sleep(1000); driver.findElementByXPath(".//*[@id='homepage1_HomePageDays_ctl00_DayList_TitleUrl_0']").click(); //点击第1篇博客 sleep(2000); Assert.assertEquals(driver.findElementByXPath(".//*[@id='cb_post_title_url']").getText(), "Appium(Python)驱动手机淘宝App"); } @AfterMethod public void afterMethod(){ driver.closeApp(); driver.quit(); } }
如果是自己公司的App,
请记得麻烦开发工程师开启WebView的debug模式!