Holmos自动化测试入门学习(九)------用新开浏览器方式后页面元素的操作

平时测试经常碰到这么一个场景,例如点击了查询,查询结果在新浏览器页面打开,这时我们得在新开浏览器中操作,
就得把控制权交与新开的浏览器,那又如何把控制权交给新开的浏览器页面呢?Holmos封装了如下方法:

从我个人平时使用来看,最长用过的是attach()和attachByTitle()方法,所以直接用这2个写个例子。
我们以IE下进行百度搜索到搜索结果页这么一个操作。在看代码之前先设置下IE,我这边以IE8为例,
再选项卡设置中勾选“始终在新窗口中打开弹出的窗口”,如下图:

1.设置完后,新建Page页面,这边就还是命名为Baidu.java,具体代码如下:
import com.holmos.webtest.element.Button;
import com.holmos.webtest.element.TextField;
import com.holmos.webtest.struct.Page;

public class Baidu extends Page {
        public Baidu() {
               super();
               this.comment = "百度首页";
               this.init();
       }

        public TextField text_TF = new TextField( "百度文本框" );
       {
               text_TF.addIDLocator("kw" );
               text_TF.addNameLocator("wd" );
       }

        public Button baidu_BT = new Button( "百度一下" );
       {
               baidu_BT.addIDLocator("su" );
               baidu_BT.addAttributeLocator("value" , "百度一下");
       }
}
2.新建个Test类,实现输入关键字点击搜索,然后把控制权交与搜索页面。
import org.junit.Test;

import com.holmos.webtest.EngineType;
import com.holmos.webtest.utils.HolmosWindow;

public class Baidu_Test {
        public Baidu baidu =new Baidu();
       
        @Test
        public void attachTest(){
              HolmosWindow. openNewWindow(EngineType.WebDriverIE, "Http://www.baidu.com" );
               System.out.println( "获得控制权的页面地址" +HolmosWindow.getUrl ());// 获取当前的url
               baidu.text_TF .setText("holmos");
               baidu.baidu_BT .clickAndWaitForLoad();
               // 把控制权交给搜索结果页
              HolmosWindow. attach("http://www.baidu.com/s?wd=holmos&rsv_bp=0&ch=&tn=baidu&bar=&rsv_spt=3&ie=utf-8&rsv_sug3=1&rsv_sug1=1&rsv_sug4=238&inputT=3807" );
               System.out.println( "获得控制权的页面地址" +HolmosWindow.getUrl ());// 获取当前的url
              HolmosWindow. closeAllWindows();
       }
运行结果,我们查看logo发现前后两次获取的url不同:

同样做个对比,如果去掉控制权交给搜索结果页的代码结果会是什么样:
        @Test
        public void attachTest (){
              HolmosWindow. openNewWindow(EngineType.WebDriverIE, "Http://www.baidu.com" );
              System. out.println("获得控制权的页面地址" +HolmosWindow.getUrl ());// 获取当前的url
               baidu.text_TF .setText("holmos");
               baidu.baidu_BT .clickAndWaitForLoad();
              System. out.println("获得控制权的页面地址" +HolmosWindow.getUrl ());// 获取当前的url
              HolmosWindow. closeAllWindows();
       }
运行结果:

很明显,去掉了控制权交予的代码,前后获取到的都是百度首页的url,无法对搜索结果页面操作。

上面例子是通过url方式交予控制权,下面以attachByTitle方式把控制权交予对应titile的页面:
        @Test
        public void attachByTitleTest (){
              HolmosWindow. openNewWindow(EngineType.WebDriverIE, "Http://www.baidu.com" );
              System. out.println("获得控制权的页面title:" +HolmosWindow.getTitle ());// 获取当前的 title
               baidu.text_TF .setText("holmos");
               baidu.baidu_BT .clickAndWaitForLoad();
               // 把控制权交给搜索结果页
              HolmosWindow. attachByTitle("holmos_百度搜索");
              System. out.println("获得控制权的页面title:" +HolmosWindow.getTitle ());// 获取当前的 title
              HolmosWindow. closeAllWindows();
       }
运行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值