selenlium 实践 1

  1 package project2016022201;
  2
  3 import org.openqa.selenium.By;
  4 import org.openqa.selenium.WebDriver;
  5 import org.openqa.selenium.WebElement;
  6 import org.openqa.selenium.firefox.FirefoxDriver;
  7 import org.openqa.selenium.support.ui.ExpectedConditions;
  8 import org.openqa.selenium.support.ui.WebDriverWait;
  9
 10 public class selenium2016022201 {
 11     public static void main(String[] args) {
 12
 13         System.setProperty("webdriver.firefox.bin","D:/Program Files/Mozilla firefox4002/firefox.exe");
 14
 15         WebDriver driver = new FirefoxDriver();
 16
 17         driver.get("http://jiemo.jiemo.net/");
 18
 19         driver.manage().window().maximize();
 20
 21     ///////////////////////////////////////////////////////////////////////////////////////////////
 22     // jiemo.jiemo.net homepage dropdown list test
 23 /*        new WebDriverWait(driver, 15).until(
 24                 ExpectedConditions.presenceOfElementLocated(By.id("dropdownMenu1"))
 25             );
 26         WebElement abordtimelist = driver.findElement(By.id("dropdownMenu1"));
 27         abordtimelist.click();
 28
 29         new WebDriverWait(driver, 15).until(
 30                 ExpectedConditions.presenceOfElementLocated(By.xpath("/html/body/div[2]/div[3]/div/dl[2]/dd/div/ul/li[2]/a"))
 31             );
 32         WebElement selectabordyear = driver.findElement(By.xpath("/html/body/div[2]/div[3]/div/dl[2]/dd/div/ul/li[2]/a"));
 33         selectabordyear.click();
 34
 35         new WebDriverWait(driver, 15).until(
 36                 ExpectedConditions.presenceOfElementLocated(By.id("uk"))
 37             );
 38         WebElement selectabordcountry = driver.findElement(By.id("uk"));
 39         selectabordcountry.click();
 40
 41         new WebDriverWait(driver, 15).until(
 42                 ExpectedConditions.presenceOfElementLocated(By.xpath("/html/body/div[2]/div[3]/div/div/button"))
 43             );
 44         WebElement abordselustionbtn = driver.findElement(By.xpath("/html/body/div[2]/div[3]/div/div/button"));
 45         abordselustionbtn.click();
 46
 47         */
 48     /////////////////////////////////////////////////////////////////////////////////////////////////
 49
 50         new WebDriverWait(driver, 15).until(
 51                 ExpectedConditions.presenceOfElementLocated(By.xpath("/html/body/div[2]/div[1]/div/div/div/div[3]/ul/li[3]/a"))
 52             );
 53         WebElement hypelinkschool = driver.findElement(By.xpath("/html/body/div[2]/div[1]/div/div/div/div[3]/ul/li[3]/a"));
 54         hypelinkschool.click();
 55
 56         new WebDriverWait(driver, 15).until(
 57                 ExpectedConditions.presenceOfElementLocated(By.xpath("/html/body/div[2]/div[2]/div/div[2]/div/div[1]/a[1]/img"))
 58             );
 59         WebElement oxfordimg = driver.findElement(By.xpath("/html/body/div[2]/div[2]/div/div[2]/div/div[1]/a[1]/img"));
 60         oxfordimg.click();
 61
 62 /*        boolean flag = false;
 63         String currentHandle = driver.getWindowHandle();
 64         Set<String> handles = driver.getWindowHandles();
 65         for (String s : handles) {
 66             if (s.equals(currentHandle))
 67                 continue;
 68             else {
 69                 driver.switchTo().window(s);
 70                 if (driver.getTitle().contains("此处是页面标题")) {
 71                     flag = true;
 72                     System.out.println("Switch to window: "
 73                             + "此处是页面标题" + " successfully!");
 74                     break;
 75                 } else
 76                     continue;
 77             }
 78         }  */
 79
 80         managewindow swtowindow = new managewindow();
 81
 82         swtowindow.switchToWindow(driver,"此处是页面标题");
 83
 84 /*        new WebDriverWait(driver, 15).until(
 85                 ExpectedConditions.presenceOfElementLocated(By.xpath("/html/body/div[2]/div[6]/div/div[1]/div[2]/ul/li[5]/a")));
 86         WebElement applyhow = driver.findElement(By.xpath("/html/body/div[2]/div[6]/div/div[1]/div[2]/ul/li[5]/a"));
 87         applyhow.click();*/
 88
 89         new WebDriverWait(driver, 15).until(
 90                 ExpectedConditions.presenceOfElementLocated(By.xpath("/html/body/div[2]/div[6]/div/div[1]/div[2]/div/div[1]/ul/li[2]/a")));
 91         WebElement schoollife = driver.findElement(By.xpath("/html/body/div[2]/div[6]/div/div[1]/div[2]/div/div[1]/ul/li[2]/a"));
 92         schoollife.click();
 93
 94         //swtowindow.closeWindow(driver, "此处是页面标题");
 95
 96         swtowindow.switchToWindow(driver,"此处是页面标题");
 97
 98         new WebDriverWait(driver, 15).until(
 99                 ExpectedConditions.presenceOfElementLocated(By.xpath("/html/body/div[2]/div[2]/div/div[1]/div/div[1]/a[1]/img"))
100             );
101         WebElement cambridgeimg = driver.findElement(By.xpath("/html/body/div[2]/div[2]/div/div[1]/div/div[1]/a[1]/img"));
102         cambridgeimg.click();
103
104         swtowindow.closeWindow(driver, "此处是页面标题");
105
106         //driver.close();.
107
108     }
109 }
110
111 --------------------------------------------------------------------------------
112
113 package project2016022201;
114
115 import java.util.Set;
116
117 import org.openqa.selenium.NoSuchWindowException;
118 import org.openqa.selenium.WebDriver;
119
120 public class managewindow {
121     public boolean switchToWindow(WebDriver driver,String windowTitle){
122         boolean flag = false;
123         try {
124             String currentHandle = driver.getWindowHandle();
125             Set<String> handles = driver.getWindowHandles();
126             for (String s : handles) {
127                 if (s.equals(currentHandle))
128                     continue;
129                 else {
130                     driver.switchTo().window(s);
131                     if (driver.getTitle().contains(windowTitle)) {
132                         flag = true;
133                         System.out.println("Switch to window: "
134                                 + windowTitle + " successfully!");
135                         break;
136                     } else
137                         continue;
138                 }
139             }
140         } catch (NoSuchWindowException e) {
141             System.out.println("Window: " + windowTitle
142                     + " cound not found!");
143             flag = false;
144         }
145         return flag;
146     }
147
148     public boolean closeWindow(WebDriver driver,String windowTitle){
149         boolean flag = false;
150         try {
151             //String currentHandle = driver.getWindowHandle();
152             Set<String> handles = driver.getWindowHandles();
153             for (String s : handles) {
154                 if (driver.getTitle().contains(windowTitle))
155                     {
156                         driver.close();
157                         break;
158                     }
159                 else {
160                     driver.switchTo().window(s);
161                     if (driver.getTitle().contains(windowTitle)) {
162                         flag = true;
163                         System.out.println("close window: "
164                                 + windowTitle + " successfully!");
165                         driver.close();
166                         break;
167                     } else
168                         continue;
169                 }
170             }
171         } catch (NoSuchWindowException e) {
172             System.out.println("Window: " + windowTitle
173                     + " cound not found!");
174             flag = false;
175         }
176         return flag;
177     }
178 }

此代码只是记录了selenium的功能, 实际上的selenlium应该与junit或者testNG配合

时间: 2024-10-11 05:48:44

selenlium 实践 1的相关文章

selenlium 实践 2

FirefoxProfile定制启动firefox 1 package seleniumtraining1; 2 3 import java.io.File; 4 import java.io.IOException; 5 6 import org.openqa.selenium.By; 7 import org.openqa.selenium.WebDriver; 8 import org.openqa.selenium.WebElement; 9 import org.openqa.sele

5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践

5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践 扩展 vim的特殊用法 http://www.apelearn.com/bbs/thread-9334-1-1.html vim常用快捷键总结 http://www.apelearn.com/bbs/thread-407-1-1.html vim快速删除一段字符 http://www.apelearn.com/bbs/thread-842-1-1.html vim乱码 http://www.apelearn.com/bbs/thr

分布式开放消息系统(RocketMQ)的原理与实践

分布式消息系统作为实现分布式系统可扩展.可伸缩性的关键组件,需要具有高吞吐量.高可用等特点.而谈到消息系统的设计,就回避不了两个问题: 消息的顺序问题 消息的重复问题 RocketMQ作为阿里开源的一款高性能.高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ 有哪些关键特性?其实现原理是怎样的? 关键特性以及其实现原理 一.顺序消息 消息有序指的是可以按照消息的发送顺序来消费.例如:一笔订单产生了 3 条消息,分别是订单创建.订单付款.订单完成.消费时,要按照顺序依次消费才有意

php各种设计模式简单实践思考

前言 我一直觉得什么框架,版本,甚至语言对于一个coder来说真的不算什么,掌握一个特别高大上的一个框架或者是一个新的,少众的语言真的不算什么,因为你可以,我要花时间也可以,大家都是这样的.所以基本的显得额外重要,即是算法和数据结构,再就是好的设计模式了,,,听过一句话,是好的数据结构是让计算机更快的工作,而一个好的设计模式则是使开发者工作的更快! 单例模式 单例模式特点 $_instance 必须声明为静态的私有变量 构造函数和克隆函数必须声明为私有的,这是为了防止外部程序 new 类从而失去

VS2010 Extension实践(2)

在上一篇(VS2010 Extension (1)实践)里,主要展示了如何使用MEF扩展VS2010,来扩展编辑控制和展现自己的UI:在实现QuickToolbar的时候,发现MEF仅仅提供了很基本的编辑控制,如果需要高级的操作,比如注释选择的代码,就捉襟见肘,很是麻烦. 本篇我将展示如何深入挖掘VS2010 Extension,使它成为锋利的军刀,而不是绣花枕头.鉴于此,这里就从上面提到了的Feature--注释和取消注释选择的代码来剖析,希望可以为大家拓宽思路,更好的利用VS2010. 首先

displaytag的Excel导出实践

本文转自 http://lingceng.iteye.com/blog/1820081/ Displaytag官网有1.0, 1.1, 1.2等,注意找到对应的版本.源码和API可以在Maven库中找到.   常规的使用不是问题,这里说说关于Excel导出的问题,中文乱码,使用POI等.我使用的是Displaytag1.1. 基本导出功能   这种情况只需引入displaytag-1.1.jar.   设置column属性media="html"将不会导出,media="ex

【小程序】微信小程序开发实践

帐号相关流程 注册范围 企业 政府 媒体 其他组织 换句话讲就是不让个人开发者注册. :) 填写企业信息 不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的. 填写公司机构信息,对公账户信息 绑定管理员微信 企业认证 公司对公账户对微信进行打款 账户自动验证后,自动认证通过,并将认证资金退回公司对公账户,费用在1元内随机 小程序发布流程 开发实践 这次的demo项目为农历和公历的转换器,重在体验开发流程. AppID(小程序ID) 做上面的那些步骤就是为了得到小程序ID

CMDB专家实践谈:自动化运维的基石CMDB

CMDB是什么? 运维百花齐放繁荣景象的同时,也让碎片化问题产生:每个人都想整合运维平台,但是往往事与愿违. CMDB就像一个人的大脑核心,是一个信息协调库,其存储的资料是协调身体完成各种复杂运动的信息来源. 我心中的CMDB .碎片整合 面向运维工具的碎片化场景,是盘活整个运维管理的数据核心 .元数据库 提供运维活动的基础元数据,是唯一可信的运维配置数据服务 .场景驱动 为运维联动提供数据驱动,可协调工具来完成各类自动化场景 自动扩容+自动监控 CMDB如何建设? 痛点现象与对策I模型建不好

基础入门_Python-模块和包.运维开发中watchdog事件监视的最佳实践?

简单介绍: 说明:  此模块是一个跨平台的PY库和SHELL工具,可以监视文件系统事件(增加/删除/修改) 快速安装: pip install --upgrade watchdog 日志记录: event_handler = LoggingEventHandler() -> event_handler 说明: 创建一个日志处理句柄,其实LoggingEventHandler是继承自FileSystemEventHandler类,只是重写了增删查改的回调函数,直接调用logging模块写到对应lo