51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3234|回复: 4
打印 上一主题 下一主题

[原创] Selenium 自动化测试中各个Page Object之间的跳转

[复制链接]
  • TA的每日心情
    擦汗
    5 小时前
  • 签到天数: 527 天

    连续签到: 4 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-10-10 10:41:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    Page Object:

    1. 首页

    2.登陆页

    3.产品详情页

    4.创建订单页

    总共四个页面,创建一个用例:

    打开首页后,登录后又回到首页,然后点击首页的一个产品l<li>,进入产品详情页,在产品详情页,点击确认下单,进入创建订单页。在创建订单页,点击加入购物车。 这样的一个流程用例。


    我目前把HomePage, LoginPage,ProductDeatilPage,CreateOrderPage都写好了,Page里面的各种元素操作也写好了。

    但是各个页面之间的跳转让我很迷惑,不知道怎么创建一个整体的用例

    求助大神。

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2018-10-10 14:36:33 | 只看该作者
    用例就按你操作步骤来写
    比如你上面的购物流程,可以分为2个用例:1个登录的用例,1个加入购物车的用例
    写一个单独的测试类,分为两个测试方法,一个登录,一个加入购物车
    看你登录是在哪个页面进行登录,先进入到登录的page类,执行登录操作。
    比如下面我测试的APP是先打开APP,进入“我的”页面,用例里面通过配置文件传参,获取需要登录的用户名和密码

      //登录方法
      @Test
      @Parameters({"oldUserName","oldPassWord"})
      public void myPageLoginApp(String oldUserName,String oldPassWord) {          
              //打开APP,点击“我的”
             MainPage.clickMyButton();
              //点击“我的”页面的登录按钮
              MyPage.clickLogin();
              //输入用户名密码登录
              MyPage.loginApp(oldUserName,oldPassWord);         //登录的具体操作步骤在MyPage类里面去写,如下所示

              //登录是否成功校验
              Assert.assertEquals(oldUserName, MyPage.verify().getLoginSuccessText());
              
      }




    MyPage.java里面的登录方法
      /**
                 * 输入用户名密码,点击登录
                 * @param name
                 * @param password
                 */
               public void loginApp(String name,String password){
               Driver.findElementById(“xxxx_name_id”).sendKeys(name);
               Driver.findElementById(“xxxxx_pwd_id”).sendKeys(password);
               Driver.findElementById(“xxxx_loginBtn_id”).click();

                }


    在你的测试类里面写一个加入购物车的用例,类似登录的用例

      //创建订单
      @Test
      public void creatOrder() {          
              //打开APP,点击首页的产品1
             HomePage.点击产品1();
              //在产品详情页点击下单
              ProductDeatilPage.点击确认下单();
              //进入创建订单页面,加入购物车
             CreateOrderPage.点击加入购物车();

              //校验是否加入购物车
              Assert.校验();
              
      }




    最后看用的什么测试框架,我用的testng框架,那么在配置文件里面创建执行顺序
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

    <suite name="TestSuite">
        <listeners>
            <listener class-name="framework.TestListener" />
        </listeners>
            <!-- 生产环境变量 -->
            <parameter name="oldUserName" value="13888888888"/>
        <parameter name="oldPassWord" value="Pass1234"/>


        <test name="HW-8">
            <parameter name = "port" value = "4723"/>
            <parameter name = "udid" value = "D5F0218825000446"/>
            <parameter name = "wdaPort" value = "8001"/>

            <classes>
                            <class name="testcase.mycadillac.PersonalCenterTest">
                        <methods>
                                 <include name="myPageLoginApp"/>
                                 <include name="modifyPwd"/>
                                 
                        </methods>
                </class>
            </classes>        
        </test>
    </suite>



    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    5 小时前
  • 签到天数: 1801 天

    连续签到: 5 天

    [LV.Master]测试大本营

    3#
    发表于 2018-10-11 11:49:51 | 只看该作者
    传递同一个webdriver对象,或者后一个page=前一个page的点击调用。
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 2812 天

    连续签到: 5 天

    [LV.Master]测试大本营

    4#
    发表于 2018-10-11 13:15:21 | 只看该作者
    回复

    使用道具 举报

  • TA的每日心情

    2024-7-8 09:00
  • 签到天数: 943 天

    连续签到: 1 天

    [LV.10]测试总司令

    5#
    发表于 2018-10-11 14:14:23 | 只看该作者
    传递同一个webdriver对象,或者后一个page=前一个page的点击调用
    回复

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-15 14:57 , Processed in 0.064081 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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