使用selenium遍历frame中的表单信息 ;

遍历frame中的表单 :

  1 package webDriverPro;
  2 
  3 import java.util.List;
  4 import java.util.regex.Matcher;
  5 import java.util.regex.Pattern;
  6 
  7 import org.openqa.selenium.By;
  8 import org.openqa.selenium.WebDriver;
  9 import org.openqa.selenium.WebElement;
 10 import org.openqa.selenium.firefox.FirefoxDriver;
 11 import org.openqa.selenium.support.ui.ExpectedCondition;
 12 import org.openqa.selenium.support.ui.WebDriverWait;
 13 
 14 import commUtil.Log;
 15 import commUtil.OpenBrowserInfo;
 16 
 17 public class Demo2 {
 18     public WebDriver driver;
 19 
 20     // 判断手机号码的合法性;
 21     public static boolean regexp(String iphoneNumber) {
 22         String regExp = "^[1]([3][0-9]{1}|59|58|88|89|52|30|87)[0-9]{8}$";
 23         Pattern p = Pattern.compile(regExp);
 24         Matcher m = p.matcher(iphoneNumber);
 25         return m.find();
 26     }
 27 
 28     public Demo2(WebDriver driver) {
 29         this.driver = driver;
 30     }
 31 
 32     // 登陆
 33     public void login() {
 34         WebElement username = (new WebDriverWait(driver, 1000).until(new ExpectedCondition<WebElement>() {
 35             @Override
 36             public WebElement apply(WebDriver driver) {
 37                 return driver.findElement(By.id("username"));
 38             }
 39         }));
 40         username.sendKeys("admin");
 41         Log.info("----------------------------输入用密码-------------------------------------");
 42         WebElement password = (new WebDriverWait(driver, 1000).until(new ExpectedCondition<WebElement>() {
 43             @Override
 44             public WebElement apply(WebDriver driver) {
 45                 return driver.findElement(By.id("password"));
 46             }
 47         }));
 48         password.sendKeys("admin");
 49         Log.info("----------------------------点击登录按钮-------------------------------------");
 50         WebElement loginbutton = (new WebDriverWait(driver, 1000).until(new ExpectedCondition<WebElement>() {
 51             @Override
 52             public WebElement apply(WebDriver driver) {
 53                 return driver.findElement(By.xpath("html/body/div/form/div[2]/button"));
 54             }
 55         }));
 56         loginbutton.click();
 57 
 58     }
 59 
 60     // 点击系统管理和用户管理
 61     public void ClicksysUserManager() {
 62         Log.info("----------------------------点击系统管理-------------------------------------");
 63         WebElement systemManage = (new WebDriverWait(driver, 1000).until(new ExpectedCondition<WebElement>() {
 64             @Override
 65             public WebElement apply(WebDriver driver) {
 66                 return driver.findElement(By.xpath("html/body/section/div[1]/ul/li[5]/a"));
 67             }
 68         }));
 69         systemManage.click();
 70         ;
 71         Log.info("----------------------------点击用户管理-------------------------------------");
 72 
 73         WebElement usermanage = (new WebDriverWait(driver, 1000).until(new ExpectedCondition<WebElement>() {
 74             @Override
 75             public WebElement apply(WebDriver driver) {
 76                 return driver.findElement(By.xpath("html/body/section/div[1]/ul/li[5]/ul/li[1]/a"));
 77             }
 78         }));
 79         usermanage.click();
 80         driver.manage().window().maximize();
 81 
 82     }
 83 
 84         // 遍历表单中所有内容
 85     public void table1() {
 86         // 查找frame
 87         List<WebElement> iframes = driver.findElements(By.tagName("iframe"));
 88         System.out.println("页面上共找到了" + iframes.size() + "  个iframe对象 !!");
 89         WebElement frame = iframes.get(0);
 90         // 进入frame
 91         driver.switchTo().frame(frame);
 92         // 共计条数和页数对象
 93         String sumpage = driver.findElement(By.xpath("html/body/div/div/div/section/div/form/div[2]/li[7]/span"))
 94                 .getText();
 95         System.out.println("===========================" + sumpage + "共计多少页------------------------------------");
 96         String totalCount = (sumpage.substring(sumpage.indexOf("共") + 1, sumpage.lastIndexOf("条")));
 97         int totalRecord = Integer.parseInt(totalCount.trim());
 98         int pageSize = 10;
 99         int totalPageNum = (totalRecord + pageSize - 1) / pageSize;
100         System.out.println(
101                 "---------------------------------总共有 :" + totalPageNum + "页 !---------------------------------------");
102         // 下一页对象;
103         WebElement nextPage;
104         // 遍历表单
105         for (int k = 1; k <= totalPageNum; k++) {
106             Log.info("当前是第" + k + " 页!");
107             nextPage = driver.findElement(By.xpath("html/body/div/div/div/section/div/form/div[2]/li[6]/a"));
108             List<WebElement> tables = driver.findElements(By.tagName("table"));
109             System.out.println("iframes 中共找到了 " + tables.size() + " 个tables !");
110             WebElement table = tables.get(0);
111             List<WebElement> rows = table.findElements(By.tagName("tr"));
112             for (WebElement row : rows) {
113                 List<WebElement> cols = row.findElements(By.tagName("td"));
114                 for (WebElement col : cols) {
115                     System.out.print("|");
116                     System.out.print(col.getText() + "    |");
117                 }
118                 System.out.println("");
119             }
120             // 判断当前是第几页,如果是最后一页不执行点击下一页
121             if (k == totalPageNum) {
122                 break;
123             } else {
124                 nextPage.click();
125                 System.out.println("点击次数=" + k + " ;");
126             }
127             // driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
128             OpenBrowserInfo.ThreadSleep();
129         }
130 
131         // return null;
132     }
133 
134         // 判断手机号码是否合规
135     public void iphoneNumberIsTrue() {
136 
137         // 查找frame
138         List<WebElement> iframes = driver.findElements(By.tagName("iframe"));
139         System.out.println("页面上共找到了" + iframes.size() + "  个iframe对象 !!");
140         WebElement frame = iframes.get(0);
141         // 进入frame
142         driver.switchTo().frame(frame);
143         // 共计条数和页数对象
144         String sumpage = driver.findElement(By.xpath("html/body/div/div/div/section/div/form/div[2]/li[7]/span"))
145                 .getText();
146         System.out.println("===========================" + sumpage + "共计多少页------------------------------------");
147         String totalCount = (sumpage.substring(sumpage.indexOf("共") + 1, sumpage.lastIndexOf("条")));
148         int totalRecord = Integer.parseInt(totalCount.trim());
149         int pageSize = 10;
150         int totalPageNum = (totalRecord + pageSize - 1) / pageSize;
151         System.out.println(
152                 "---------------------------------总共有 :" + totalPageNum + "页 !---------------------------------------");
153         // 下一页对象;
154         WebElement nextPage;
155         // 遍历表单
156         for (int k = 1; k <= totalPageNum; k++) {
157             Log.info("当前是第" + k + " 页!");
158             nextPage = driver.findElement(By.xpath("html/body/div/div/div/section/div/form/div[2]/li[6]/a"));
159             List<WebElement> tables = driver.findElements(By.tagName("table"));
160             System.out.println("iframes 中共找到了 " + tables.size() + " 个tables !");
161             WebElement table = tables.get(0);
162             List<WebElement> rows = table.findElements(By.tagName("tr"));
163             for (int i = 0; i < rows.size(); i++) {
164                 List<WebElement> cols = rows.get(i).findElements(By.tagName("td"));
165                 for (int j = 0; j < cols.size(); j++) {
166                     // 获取手机号并判断手机号的合法性;
167                     if (5 == j) {
168                         String iphoneNumber = cols.get(j).getText();
169                         if (!Demo2.regexp(iphoneNumber)) {
170                             System.out.println(iphoneNumber + "-- 不合法的手机号 !");
171                         }
172                     }
173 
174                 }
175             }
176             // 判断当前是第几页,如果是最后一页不执行点击下一页
177             if (k == totalPageNum) {
178                 break;
179             } else {
180                 nextPage.click();
181                 System.out.println("点击次数=" + k + " ;");
182             }
183             // driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
184             OpenBrowserInfo.ThreadSleep();
185         }
186     }
187 
188     public static void main(String[] args) {
189         OpenBrowserInfo.fireFoxDriver();
190         WebDriver driver = new FirefoxDriver();
191         driver.get("http://139.196.180.205:8099/orient_new/");
192         Demo2 demo2 = new Demo2(driver);
193         OpenBrowserInfo.ThreadSleep();
194         demo2.login();
195         demo2.ClicksysUserManager();
196          demo2.table1();
197          //demo2.iphoneNumberIsTrue();
198         driver.close();
199 
200     }
201 
202 }
View Code

运行结果:

 

posted @ 2017-03-13 10:23  linbo.yang  阅读(331)  评论(0编辑  收藏  举报