遍历frame中的表单 :

 package webDriverPro;

 import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern; import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait; import commUtil.Log;
import commUtil.OpenBrowserInfo; public class Demo2 {
public WebDriver driver; // 判断手机号码的合法性;
public static boolean regexp(String iphoneNumber) {
String regExp = "^[1]([3][0-9]{1}|59|58|88|89|52|30|87)[0-9]{8}$";
Pattern p = Pattern.compile(regExp);
Matcher m = p.matcher(iphoneNumber);
return m.find();
} public Demo2(WebDriver driver) {
this.driver = driver;
} // 登陆
public void login() {
WebElement username = (new WebDriverWait(driver, 1000).until(new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
return driver.findElement(By.id("username"));
}
}));
username.sendKeys("admin");
Log.info("----------------------------输入用密码-------------------------------------");
WebElement password = (new WebDriverWait(driver, 1000).until(new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
return driver.findElement(By.id("password"));
}
}));
password.sendKeys("admin");
Log.info("----------------------------点击登录按钮-------------------------------------");
WebElement loginbutton = (new WebDriverWait(driver, 1000).until(new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
return driver.findElement(By.xpath("html/body/div/form/div[2]/button"));
}
}));
loginbutton.click(); } // 点击系统管理和用户管理
public void ClicksysUserManager() {
Log.info("----------------------------点击系统管理-------------------------------------");
WebElement systemManage = (new WebDriverWait(driver, 1000).until(new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
return driver.findElement(By.xpath("html/body/section/div[1]/ul/li[5]/a"));
}
}));
systemManage.click();
;
Log.info("----------------------------点击用户管理-------------------------------------"); WebElement usermanage = (new WebDriverWait(driver, 1000).until(new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
return driver.findElement(By.xpath("html/body/section/div[1]/ul/li[5]/ul/li[1]/a"));
}
}));
usermanage.click();
driver.manage().window().maximize(); } // 遍历表单中所有内容
public void table1() {
// 查找frame
List<WebElement> iframes = driver.findElements(By.tagName("iframe"));
System.out.println("页面上共找到了" + iframes.size() + " 个iframe对象 !!");
WebElement frame = iframes.get(0);
// 进入frame
driver.switchTo().frame(frame);
// 共计条数和页数对象
String sumpage = driver.findElement(By.xpath("html/body/div/div/div/section/div/form/div[2]/li[7]/span"))
.getText();
System.out.println("===========================" + sumpage + "共计多少页------------------------------------");
String totalCount = (sumpage.substring(sumpage.indexOf("共") + 1, sumpage.lastIndexOf("条")));
int totalRecord = Integer.parseInt(totalCount.trim());
int pageSize = 10;
int totalPageNum = (totalRecord + pageSize - 1) / pageSize;
System.out.println(
"---------------------------------总共有 :" + totalPageNum + "页 !---------------------------------------");
// 下一页对象;
WebElement nextPage;
// 遍历表单
for (int k = 1; k <= totalPageNum; k++) {
Log.info("当前是第" + k + " 页!");
nextPage = driver.findElement(By.xpath("html/body/div/div/div/section/div/form/div[2]/li[6]/a"));
List<WebElement> tables = driver.findElements(By.tagName("table"));
System.out.println("iframes 中共找到了 " + tables.size() + " 个tables !");
WebElement table = tables.get(0);
List<WebElement> rows = table.findElements(By.tagName("tr"));
for (WebElement row : rows) {
List<WebElement> cols = row.findElements(By.tagName("td"));
for (WebElement col : cols) {
System.out.print("|");
System.out.print(col.getText() + " |");
}
System.out.println("");
}
// 判断当前是第几页,如果是最后一页不执行点击下一页
if (k == totalPageNum) {
break;
} else {
nextPage.click();
System.out.println("点击次数=" + k + " ;");
}
// driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
OpenBrowserInfo.ThreadSleep();
} // return null;
} // 判断手机号码是否合规
public void iphoneNumberIsTrue() { // 查找frame
List<WebElement> iframes = driver.findElements(By.tagName("iframe"));
System.out.println("页面上共找到了" + iframes.size() + " 个iframe对象 !!");
WebElement frame = iframes.get(0);
// 进入frame
driver.switchTo().frame(frame);
// 共计条数和页数对象
String sumpage = driver.findElement(By.xpath("html/body/div/div/div/section/div/form/div[2]/li[7]/span"))
.getText();
System.out.println("===========================" + sumpage + "共计多少页------------------------------------");
String totalCount = (sumpage.substring(sumpage.indexOf("共") + 1, sumpage.lastIndexOf("条")));
int totalRecord = Integer.parseInt(totalCount.trim());
int pageSize = 10;
int totalPageNum = (totalRecord + pageSize - 1) / pageSize;
System.out.println(
"---------------------------------总共有 :" + totalPageNum + "页 !---------------------------------------");
// 下一页对象;
WebElement nextPage;
// 遍历表单
for (int k = 1; k <= totalPageNum; k++) {
Log.info("当前是第" + k + " 页!");
nextPage = driver.findElement(By.xpath("html/body/div/div/div/section/div/form/div[2]/li[6]/a"));
List<WebElement> tables = driver.findElements(By.tagName("table"));
System.out.println("iframes 中共找到了 " + tables.size() + " 个tables !");
WebElement table = tables.get(0);
List<WebElement> rows = table.findElements(By.tagName("tr"));
for (int i = 0; i < rows.size(); i++) {
List<WebElement> cols = rows.get(i).findElements(By.tagName("td"));
for (int j = 0; j < cols.size(); j++) {
// 获取手机号并判断手机号的合法性;
if (5 == j) {
String iphoneNumber = cols.get(j).getText();
if (!Demo2.regexp(iphoneNumber)) {
System.out.println(iphoneNumber + "-- 不合法的手机号 !");
}
} }
}
// 判断当前是第几页,如果是最后一页不执行点击下一页
if (k == totalPageNum) {
break;
} else {
nextPage.click();
System.out.println("点击次数=" + k + " ;");
}
// driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
OpenBrowserInfo.ThreadSleep();
}
} public static void main(String[] args) {
OpenBrowserInfo.fireFoxDriver();
WebDriver driver = new FirefoxDriver();
driver.get("http://139.196.180.205:8099/orient_new/");
Demo2 demo2 = new Demo2(driver);
OpenBrowserInfo.ThreadSleep();
demo2.login();
demo2.ClicksysUserManager();
demo2.table1();
//demo2.iphoneNumberIsTrue();
driver.close(); } }

运行结果:

使用selenium遍历frame中的表单信息 ;的更多相关文章

  1. 遍历frame中的表单:

    遍历frame中的表单: public void table1() { // 查找frame List<WebElement> iframes = driver.findElements( ...

  2. selenium - switch_to.frame()- 内嵌表单的切换

    表单嵌套frame/iframe webDriver只能在一个页面上对元素识别和定位,对于frame/iframe表单内嵌页面上的元素无法直接定位,此时就需要通过switch_to.frame()方法 ...

  3. 在springboot中验证表单信息(六)

    构建工程 创建一个springboot工程,由于用到了 web .thymeleaf.validator.el,引入相应的起步依赖和依赖,代码清单如下: 1 2 3 4 5 6 7 8 9 10 11 ...

  4. Spring Boot教程(六)在springboot中验证表单信息

    构建工程 创建一个springboot工程,由于用到了 web .thymeleaf.validator.el,引入相应的起步依赖和依赖,代码清单如下: <dependencies> &l ...

  5. SpringBoot非官方教程 | 第十九篇: 验证表单信息

    转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springboot/2017/07/11/springboot19/ 本文出自方志朋的博客 这篇文篇主要简述如何 ...

  6. Python的Django框架中forms表单类的使用方法详解

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  7. JavaScript中的表单编程

    表单编程 1获取表单相关信息 1.什么是表单元素 1.什么是表单元素 在H TML中表单就是指form标签,它的作用是将用户输入或选择的数据提交给指定的服务器 2.如何获取表单元素 <form ...

  8. AngularJS中的表单验证

    AngularJS中的表单验证 AngularJS自带了很多验证,什么必填,最大长度,最小长度...,这里记录几个有用的正则式验证 1.使用angularjs的表单验证 正则式验证 只需要配置一个正则 ...

  9. MVC中处理表单提交的方式(Ajax+Jquery)

    MVC中处理表单有很多种方法,这里说到第一种方式:Ajax+Jquery 先看下表单: <form class="row form-body form-horizontal m-t&q ...

随机推荐

  1. golang channel 使用总结

    原文地址 不同于传统的多线程并发模型使用共享内存来实现线程间通信的方式,golang 的哲学是通过 channel 进行协程(goroutine)之间的通信来实现数据共享: Do not commun ...

  2. IC设计笔试面试小问题总结(随时更新)-IC设计笔记(三)

    都是一些细节性问题,放在一起记忆,一问一答的形式,有任何问题欢迎文章上方微博讨论,多思多想. 1.What makes the difference between Run time and CPU ...

  3. 20155217 2016-2017-2 《Java程序设计》第10周学习总结

    20155217 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. 程序员所作的事情 ...

  4. 20155222 2016-2017-2 《Java程序设计》第3周学习总结

    20155222 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 要产生对象必须先定义类,类是对象的设计图,对象是类的实例. 数组一旦建立,长度就固定了. 字 ...

  5. 第六周课上测试-3-ch02补充作业

    实验要求: 编写一个程序 "week0603学号.c",运行下面代码: short int v = -学号后四位 unsigned short uv = (unsigned sho ...

  6. 20155323 2016-2017-2 《Java程序设计》第2周学习总结

    20155323 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 对象:对象是类的一个实例,有状态和行为. 类:类是一个模板,它描述一类对象的行为和状态. 第 ...

  7. js日期控件遇到的问题

    一.问题: 在web项目里有很多时候需要使用日期控件来完成相关的功能,但是日期控件的日期格式又和我们的需求不符 那么,就需要我们来自定义日期的格式完成需求 二.解决: 1.取月末: (1)强制取值: ...

  8. day4 基础

    1.变量 2.打印名片 3.raw_input() 和 input() 4.变量类型 type 5. if-else 6.标示符的规则 7.关键字 8.运算符 9.print打印多个值 1.变量 sc ...

  9. spark on yarn 资源调度(cdh为例)

    一.CPU配置: ApplicationMaster 虚拟 CPU内核 yarn.app.mapreduce.am.resource.cpu-vcores ApplicationMaster占用的cp ...

  10. springboot中maven加入本地jar

    一.今天遇到一个问题,在使用springboot打jar的时候出现了本地依赖包打不进去的情况.然后在网上试了很多方式.这里做一个记录 二.加入本地依赖包 <dependency> < ...