51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1714|回复: 3
打印 上一主题 下一主题

Hybird APP测试系列一:Alert 的判断

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2015-10-20 12:52:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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[3]"));
                select.click();// 点击language

driver.context("NATIVE_APP");
                WebElement AlertText=driver.findElement(By.id("message")); ///alert id
                String Alert=AlertText.getText();
        }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

  • TA的每日心情
    擦汗
    2015-11-27 14:20
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]测试营长

    3#
    发表于 2015-11-8 10:43:53 | 只看该作者
    谁家的js 还用alert 啦取出砍了
    不嫌丑吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-6-15 13:38
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    4#
    发表于 2015-11-12 17:07:58 | 只看该作者
    今天刚好也测试到这个alert,关注了一下。样式确实不好看,和需求商定,是否重新实现弹框样式。需求否决了,哎。。。客户说丑就是丑,我们说丑那只是建议
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-12 06:05 , Processed in 0.064599 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表