Hybird APP测试系列一:Alert 的判断
本帖最后由 qh988629 于 2015-10-20 12:54 编辑hybrid app
Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势
对于这类应用的测试可能和平常的native app 以及web app 不同。楼主刚开始测试时,比如在app 的webview 界面点击某些button会弹出alert,而此时用findelement等方法一直无法找到,最后goggle才得以解决
解决办法如下:
public class demo {
public static AppiumDriver commonInit() throws MalformedURLException {
AppiumDriver driver;
// 使用phonegap打包的hybrid app路径
String apppath ="F:\\XXXX.apk";
// setup AppniumDriver
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "XXXX");// 真机测试android设备
// capabilities.setCapability("udid", "XXXX");
capabilities.setCapability("platformVersion", "5.0.1");// 真机android版本为4.2.2
capabilities.setCapability("platformName", "Android");// 真机为android系统
capabilities.setCapability("app", apppath);// 被测app apk包的位置
capabilities.setCapability("appPackage","com.xxxxxxx");// 被测app的Activity类所在包
// capabilities.setCapability("appActivity", "xxxxxx");从I5版本后Acitivity变成了MainActivity
capabilities.setCapability("appActivity",".MainActivity");// 被测app的Activity类
capabilities.setCapability("automationName","selendroid");// 因为真机为4.2版本,所以使用selendroid
// capabilities.setCapability("noReset", true);
capabilities.setCapability("androidDeviceReadyTimeout", 15);
// http://127.0.0.1:4723/wd/hub地址就是AppiumServer的地址
capabilities.setCapability("app-wait-activity", "activity-to-wait-for");
driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
Set<String> contextNames = driver.getContextHandles();
for (final String contextName : contextNames)
System.out.println("App type:" + contextName);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
driver.context("WEBVIEW_0");// 让appium切换到webview模式以便查找web元素
// Thread.sleep(8000);
WebElement select = driver.findElement(By.xpath("//*[@id='firstLaunchForm']/div"));
select.click();// 点击language
driver.context("NATIVE_APP");
WebElement AlertText=driver.findElement(By.id("message")); ///alert id
String Alert=AlertText.getText();
}
感谢分享~~ 谁家的js 还用alert 啦取出砍了
不嫌丑吗? 今天刚好也测试到这个alert,关注了一下。样式确实不好看,和需求商定,是否重新实现弹框样式。需求否决了,哎。。。客户说丑就是丑,我们说丑那只是建议
页:
[1]