selenium--关键字驱动
package com.dn.twohomework;
import java.util.ArrayList;
import java.util.Set;
import java.util.List;
// import org.apache.bcel.generic.Select;
//import org.openqa.selenium.support.ui.Select;
//import org.apache.bcel.generic.Select;
//import com.sun.org.apache.bcel.internal.generic.Select;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.Select;
import java.util.Iterator;
import com.gargoylesoftware.htmlunit.html.impl.SelectableTextInput;
//import com.gargoylesoftware.htmlunit.javascript.host.Iterator;
//import com.gargoylesoftware.htmlunit.javascript.host.Set;
//import com.sun.media.sound.FFT;
//import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;
import java.util.HashSet;;
public class keyWord1 {
private static WebDriver driver;
// 打开浏览�?
public void openBrowser(String b, String xpath) {
if ("cc".equals(b)) {
ChromeDriver chrome = new ChromeDriver("webdriver.chrome.driver", xpath);
driver = chrome.getdriver();
} else if ("ff".equals(xpath)) {
FFDriver ff = new FFDriver("webdriver.gecko.driver", xpath);
ff.getdriver();
} else if ("ie".equals(b)) {
IEDriver ie = new IEDriver("webdriver.ie.driver", xpath);
driver = ie.getdriver();
}
}
public static WebDriver getDriver() {
return driver;
}
public static void setDriver(WebDriver driver) {
keyWord1.driver = driver;
}
// 输入网址
public void geturl(String url) {
try {
driver.get(url);
//ChromeOptions options = new ChromeOptions();
//options.addArguments("--start-fullscreen");
//driver.manage().window().maximize();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("打开浏览器失�?");
e.printStackTrace();
}
}
// 等待时间
public void sleep(String time) throws NumberFormatException, InterruptedException {
Thread.sleep(Integer.parseInt(time));
}
// 输入内容
public void input(String xpath, String word) {
try {
driver.findElement(By.xpath(xpath)).clear();
driver.findElement(By.xpath(xpath)).sendKeys(word);
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("输入字符串失�?");
e.printStackTrace();
}
}
// 点击
public void click(String xpath) {
try {
driver.findElement(By.xpath(xpath)).click();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("点击失败");
e.printStackTrace();
}
}
// 关闭旧浏览器,切换到新窗�?
public void closeOldWin() {
List<String> handle = new ArrayList<String>();
Set<String> s = driver.getWindowHandles();
// 循环获取数组里的句柄,保存到链表handle里面
for (Iterator<String> it = s.iterator(); it.hasNext();) {
handle.add(it.next().toString());
}
driver.close();
driver.switchTo().window(handle.get(1));
}
// 关闭新浏览器,切换到旧窗�?
public void closeNewWin() {
List<String> handle = new ArrayList<String>();
Set<String> s = driver.getWindowHandles();
// 循环获取数组里的句柄,保存到链表handle里面
for (Iterator<String> it = s.iterator(); it.hasNext();) {
handle.add(it.next().toString());
}
driver.switchTo().window(handle.get(1));
driver.close();
driver.switchTo().window(handle.get(0));
}
// 进入子页�?
public void intoIframe(String xpath) {
try {
driver.switchTo().frame(driver.findElement(By.xpath(xpath)));
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("进入Iframe失败");
e.printStackTrace();
}
}
// 关闭子页�?
public void outIframe() {
driver.switchTo().defaultContent();
}
// 获取文字信息
public void getText(String xpath) {
System.out.println(driver.findElement(By.xpath(xpath)).getText());
}
// hover
public void hover(String xpath){
try {
Actions builder = new Actions(driver);
builder.moveToElement(driver.findElement(By.xpath(xpath))).build().perform();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("悬停失败");
}
}
//获取链接link
public String getLink(String xpath){
String link = "about:bliank";
try {
link = driver.findElement(By.xpath(xpath)).getAttribute("href");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("获取链接失败");
}
return link;
}
//提交表单
public void submit(String xpath){
try {
driver.findElement(By.xpath(xpath)).submit();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("提交失败");
e.printStackTrace();
}
}
//选择下拉框
public void select(int num,String xpath){
Select sel = new Select(driver.findElement(By.xpath(xpath)));
sel.selectByIndex(num);
}
//通过js操作
public void exejs(String text){
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(text);
}
//上传图片
public void uploadpiture(String name,String path){
try {
driver.findElement(By.name(name)).sendKeys(path);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("上传失败");
}
}
//获得元素属性的值
public String GetsTheValueOfTheElement(String xpath,String element){
try {
String getvalues = driver.findElement(By.xpath(xpath)).getAttribute(element);
return getvalues;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("获取元素属性的值失败");
return null;
}
}
//点击alert的确认按钮
public void clickAlert(){
driver.switchTo().alert().accept();;
}
}
selenium--关键字驱动的更多相关文章
- Selenium关键字驱动测试框架Demo(Java版)
Selenium关键字驱动测试框架Demo(Java版)http://www.docin.com/p-803493675.html
- UI自动化测试框架之Selenium关键字驱动
一.原理及特点 1. 关键字驱动测试是数据驱动测试的一种改进类型 2. 主要关键字包括三类:被操作对象(Item).操作(Operation)和值(value),用面向对象形式可将其表现为Item.O ...
- UI自动化测试框架之Selenium关键字驱动 (转)
摘要 自动化测试框架demo,用关键字的形式将测试逻辑封装在数据文件中,测试工具解释这些关键字即可对其应用自动化 一.原理及特点 1. 关键字驱动测试是数据驱动测试的一种改进类型 2. 主要 ...
- 【转】UI自动化测试框架之Selenium关键字驱动
原网址:https://my.oschina.net/hellotest/blog/531932#comment-list 摘要: 自动化测试框架demo,用关键字的形式将测试逻辑封装在数据文件中,测 ...
- Python&Selenium 关键字驱动测试框架之数据文件解析
摘要:在关键字驱动测试框架中,除了PO模式以及一些常规Action的封装外,一个很重要的内容就是读写EXCEL,在团队中如何让不会写代码的人也可以进行自动化测试? 我们可以将自动化测试用例按一定的规格 ...
- selenium 关键字驱动部分设计思路
1 说明: 1.以下的代码亲测直接可用, 2.设计思路来自博客园的 张飞_ :http://www.cnblogs.com/zhangfei/p/5330994.html / http://w ...
- 数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索
UI自动化测试用例剖析 让我们先从分析一端自动化测试案例的代码开始我们的旅程.以下是我之前写的一个自动化测试的小Demo.这个Demo基于Selenium与Java.由于现在Selenium在自动化测 ...
- Appium 自动化测试框架:关键字驱动+数据驱动
1. 关键字驱动框架简介 2. 框架结构说明 3. 框架代码实现 action 包 page_action.py business_process 包 case_process.py data_so ...
- UI自动化测试框架:关键字驱动+数据驱动
1. 关键字驱动框架简介 2. 工程结构说明 3. 工程代码实现 action 包 page_action.py business_process 包 case_process.py data_so ...
- java自动化-关键字驱动在junit接口自动化的应用
本文是继承上文的基础上进行的讨论,建议读者先阅读http://www.cnblogs.com/xuezhezlr/p/9097137.html和https://www.cnblogs.com/xuez ...
随机推荐
- Vijos 1011 清帝之惑之顺治 记忆录式的动态规划(记忆化搜索)
背景 顺治帝福临,是清朝入关后的第一位皇帝.他是皇太极的第九子,生于崇德三年(1638)崇德八年八月二ten+six日在沈阳即位,改元顺治,在位18年.卒于顺治十八年(1661),终24岁. 顺治即位 ...
- django-将数据库数据转换成JSON格式(ORM和SQL两种情况)
最近打算搞一个自动化运维平台,所以在看Django的知识. 在实际项目开发中,遇到一个小问题:前后端发生数据交互主流采用的是JSON.前端传数据到服务器端比较简单,稍微麻烦的是服务器端传JSON到前端 ...
- VB6之WM_COPYDATA
WM_COPYDATA消息是一种进程间通信的一种方式,参考文档如下: http://msdn.microsoft.com/en-us/library/windows/desktop/ms649011( ...
- vijos1090题解
题目: 有n个正整数排成一行.你的目的是要从中取出一个或连续的若干个数,使它们的和能够被k整除. 例如,有6个正整数,它们依次为1.2.6.3.7.4.若k=3,则你可以取出1.2.6,或者2.6.3 ...
- Makefile学习总结
Makefile用法分析 在linux开发中,应用程序的编译基本都采用GNU的make工具,而make搭配Makefile来实现工程代码的编译,在越是大型复杂的项目中,make的强悍之处越是明 ...
- Linux下搭建FTP服务器(Ubuntu16.04)
搞了下FTP服务器,基本上能遇到的问题都遇到了-.-! 先说步骤: 1.安装vsftpd软件包 sudo apt-get install vsftpd 2.打开配置文件 vim /etc/vsftpd ...
- Swift语法初见
Swift语法初见 http://c.biancheng.net/cpp/html/2424.html 类型的声明: let implicitInteger = 70 let implicitDoub ...
- javaSE 第77节课
1.InetAddress InetAddress是地址的封装类,也可通过它来获得当前的操作地址(1)获得电脑当前上网的IP地址 (2)与服务器连接操作 (3) 二.MD5加密文件 文件本地秒传操作例 ...
- Linux Redis 重启数据丢失解决方案,Linux重启后Redis数据丢失解决方
Linux Redis 重启数据丢失解决方案,Linux重启后Redis数据丢失解决方案 >>>>>>>>>>>>>> ...
- 动态语言的灵活性是把双刃剑 -- 以Python语言为例
本文有些零碎,总题来说,包括两个问题:(1)可变对象(最常见的是list dict)被意外修改的问题,(2)对参数(parameter)的检查问题.这两个问题,本质都是因为动态语言(动态类型语言)的特 ...