Holmos自动化测试入门学习(九)------用新开浏览器方式后页面元素的操作
2013-08-13 14:41
507 查看
平时测试经常碰到这么一个场景,例如点击了查询,查询结果在新浏览器页面打开,这时我们得在新开浏览器中操作,
就得把控制权交与新开的浏览器,那又如何把控制权交给新开的浏览器页面呢?Holmos封装了如下方法:
从我个人平时使用来看,最长用过的是attach()和attachByTitle()方法,所以直接用这2个写个例子。
我们以IE下进行百度搜索到搜索结果页这么一个操作。在看代码之前先设置下IE,我这边以IE8为例,
再选项卡设置中勾选“始终在新窗口中打开弹出的窗口”,如下图:
1.设置完后,新建Page页面,这边就还是命名为Baidu.java,具体代码如下:
2.新建个Test类,实现输入关键字点击搜索,然后把控制权交与搜索页面。
运行结果,我们查看logo发现前后两次获取的url不同:
同样做个对比,如果去掉控制权交给搜索结果页的代码结果会是什么样:
运行结果:
很明显,去掉了控制权交予的代码,前后获取到的都是百度首页的url,无法对搜索结果页面操作。
上面例子是通过url方式交予控制权,下面以attachByTitle方式把控制权交予对应titile的页面:
运行结果:
就得把控制权交与新开的浏览器,那又如何把控制权交给新开的浏览器页面呢?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(); }
运行结果:
相关文章推荐
- Holmos自动化测试入门学习(一)-------打开/关闭浏览器&&页面常用方法举例
- Webdriver学习笔记(四)页面元素的操作
- 【selenium学习笔记】webdriver对页面元素的操作
- 20171012学习笔记Selenium 2 第四章WebDriver API 4.2控制浏览器 4.3简单元素操作4.4鼠标事件4.5键盘事件
- learning jQuery 学习笔记十三(+jQuery 1.4.1 API)-- DOM操作-基于命令改变页面 ----复制元素及其它
- Holmos自动化测试入门学习(二)-------页面元素定位
- learning jQuery 学习笔记十二(+jQuery 1.4.1 API)-- DOM操作-基于命令改变页面 ----包装元素
- java struts2入门学习实例--将客户端IP地址和访问方式输出到浏览器
- JQuery 操作弹出层 iframe页面元素的方式
- webdriver与浏览器_操作页面元素—弹出窗口
- Selenium学习8--截图,拖拽页面元素,键盘操作,鼠标右键,悬停,鼠标双击
- webdriver与浏览器_操作页面元素—警告框、提示框、确认框
- learning jQuery 学习笔记十一(+jQuery 1.4.1 API)-- DOM操作-基于命令改变页面 ----移动元素
- webdriver与浏览器_操作页面元素—单选按钮/多选按钮
- Holmos自动化测试入门学习(十)------list列表元素操作
- Extjs学习总结之06页面元素操作和模版
- HTML5 学习之页面元素的拖动
- UWP开发入门(十八)——使用ContentControl减少页面元素数量
- Javascript入门学习第七篇 js dom实例操作第1/2页
- 第五章 常用页面元素自动化操作