Selenium - WebDriver 小结(1)
public class Base {
SimpleDateFormat formatterTime = new SimpleDateFormat("yyyyMMdd_hhmmssa");
SimpleDateFormat formatterDate = new SimpleDateFormat("yyyyMMdd");
private Calendar now() {
Calendar now = Calendar.getInstance();
return now;
}
public static Map<String, String> initialProperties(String properityName) {
String key = "";
String value = "";
Map<String, String> map = null;
ResourceBundle bound = PropertyResourceBundle.getBundle(properityName, Locale.ENGLISH);
Enumeration<String> enumeration = bound.getKeys();
if (enumeration != null) {
map = new HashMap<String, String>();
while (enumeration.hasMoreElements()) {
key = (String) enumeration.nextElement();
value = bound.getString(key);
map.put(key, value);
}
}
return map;
}
public static WebDriver setUp_IEDriver() throws Exception {
System.setProperty("webdriver.ie.driver", "./IEDriverServer.exe");
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
WebDriver driver = new InternetExplorerDriver(capabilities);
driver.manage().window().maximize();
return driver;
}
public WebDriver setUp_ChromeDriver(){
System.setProperty("webdriver.chrome.driver", "./chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
return driver;
}
public WebDriver setUp_FirefoxDriver(){
System.setProperty("webdriver.ie.driver", "C:/Program Files/Mozilla Firefox");
WebDriver driver = new FirefoxDriver();
return driver;
}
public static boolean isElementPresent(WebDriver driver, By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
e.printStackTrace();
return false;
}
}
public void screenshot(WebDriver driver, String path){
File folder = new File(path);
try {
if(!folder.exists()){
folder.mkdirs();
}
Dimension window_size = driver.manage().window().getSize();
// BufferedImage image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
BufferedImage image = new Robot().createScreenCapture(new Rectangle(window_size.getWidth(), window_size.getHeight()));
String screenshotName = path+formatterTime.format(now().getTime())+".png";
ImageIO.write(image, "png", new File(screenshotName));
System.out.println("Screenshot "+screenshotName+" has been saved to " + path);
} catch (HeadlessException e) {
e.printStackTrace();
} catch (AWTException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void pageshot(WebDriver driver, String path){
File folder = new File(path);
try {
if(!folder.exists()){
folder.mkdirs();
}
String screenshotName = path+formatterTime.format(now().getTime())+".png";
File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(screenshot, new File(screenshotName));
System.out.println("Screenshot "+screenshotName+" has been saved to " + path);
} catch (HeadlessException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public boolean windowStatus(WebDriver driver, final String window_status){
WebDriverWait wait = new WebDriverWait(driver, 120);
boolean windowStatus = wait.until(new ExpectedCondition<Boolean>(){
public Boolean apply(WebDriver driver){
JavascriptExecutor js = (JavascriptExecutor) driver;
return js.executeScript("return window.status").toString().trim().equals(window_status);
}});
return windowStatus;
}
public void waitForElementLoadByXpath(WebDriver driver, final String xpath){
WebDriverWait wait = new WebDriverWait(driver, 300);
wait.until(new ExpectedCondition<WebElement>(){
public WebElement apply(WebDriver driver) {
WebElement element = driver.findElement(By.xpath(xpath));
return element;
}
});
}
public void waitForPageLoad(WebDriver driver){
WebDriverWait wait = new WebDriverWait(driver, 300);
wait.until(new ExpectedCondition<Boolean>(){
public Boolean apply(WebDriver driver) {
return ((JavascriptExecutor)driver).executeScript("return document.readyState").toString().equalsIgnoreCase("complete");
}
});
}
public static void waitForDivLoad(WebDriver driver) {
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver driver) {
return ((JavascriptExecutor) driver).executeScript("return document.getElementById('ctl00_ContentPlaceHolder1_ClientProgress').style.display").toString().equalsIgnoreCase("block");
}
});
}
}
Selenium - WebDriver 小结(1)的更多相关文章
- 基于python的Selenium使用小结
之前介绍过基于Unittest和TestNG自动化测试框架,然而基于Web端的测试的基础框架是需要Selenium做主要支撑的,这里边给大家介绍下Web测试核心之基于Python的Selenium 一 ...
- 【转载】Selenium WebDriver的简单操作说明
转载自:http://blog.csdn.net/xiao190128/article/details/49784121 1.打开一个测试浏览器 对浏览器进行操作首先需要打开一个浏览器,接下来才能对浏 ...
- Selenium WebDriver的简单操作说明
[From] http://blog.csdn.net/xiao190128/article/details/49784121 1.打开一个测试浏览器 对浏览器进行操作首先需要打开一个浏览器,接下来才 ...
- selenium webdriver学习(二)————对浏览器的简单操作(转载JARVI)
selenium webdriver学习(二)————对浏览器的简单操作 博客分类: Selenium-webdriver selenium webdriver对浏览器的简单操作 打开一个测试浏览 ...
- Selenium WebDriver Code
Selenium WebDriver 用于模拟浏览器的功能,可以做网站测试用,也可以用来做crawler.我是用eclipse开发的,导入selenium-server-standalone-***. ...
- 使用httpclient 调用selenium webdriver
结合上次研究的selenium webdriver potocol ,自己写http request调用remote driver代替selenium API selenium web driver ...
- selenium webdriver 右键另存为下载文件(结合robot and autoIt)
首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...
- Selenium Webdriver java 积累一
Selenium Webdriver 学习: http://jarvi.iteye.com/category/203994 https://github.com/easonhan007/webdriv ...
- Selenium的PO模式(Page Object Model)|(Selenium Webdriver For Python)
研究Selenium + python 自动化测试有近两个月了,不能说非常熟练,起码对selenium自动化的执行有了深入的认识. 从最初无结构的代码,到类的使用,方法封装,从原始函数 ...
随机推荐
- JavaScript学习笔记--ES6学习(四) 字符串的扩展
ES6对字符串进行了一些扩展,主要表现在对Unicode 大于\uFFFF的字符的处理上. 1. ES6中字符的Unicode表示方法 在ES5中,字符串的Unicode表示方法: \uxxxx . ...
- 关于网页强制被跳转到wpkg.org的解决
今天登陆MIT的网站看一篇文章,在进入到页面的时候,网页就会自动跳转到wpkg.org这个网页,查了下据说是DNS被污染了,暂时还是不是很清楚,先把问题解决了. 方法: 在C:\WINDOWS\sys ...
- 快速理解webStroage
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Linux crontab定时执行任务 命令格式与详细例子
基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...
- 用Python和Django实现多用户博客系统(二)——UUBlog
这次又更新了一大部分功能,这次以app的形式来开发. 增加博客分类功能:博客关注.推荐功能(ajax实现) 增加二级频道功能 更多功能看截图及源码,现在还不完善,大家先将就着看.如果大家有哪些功能觉的 ...
- Solr4.8.0源码分析(27)之ImplicitDocRouter和CompositeIdRouter
同样在公司工作中发现了一个现象, 1.我用/solr/admin/collections?action=CREATE&name=collection&numShards=3&r ...
- python和django的一些小技巧(locals()...)
locals() 技巧: 思考一下我们对 current_datetime 的最后一次赋值: >>> import datetime >>> def current ...
- COGS 577 蝗灾 [CDQ分治入门题]
题目链接 昨天mhr神犇,讲分治时的CDQ分治的入门题. 题意: 你又一个w*w正方形的田地. 初始时没有蝗虫. 给你两个操作: 1. 1 x y z: (x,y)这个位置多了z只蝗虫. 2. 2 x ...
- 【2011 Greater New York Regional 】Problem H: Maximum in the Cycle of 1
也是一个数学题: 主要用到的是排列组合的知识,推推公式就行了,挺简单的: 唯一要注意的是A(0,0)=1: 在这个上面WA了几次,= = 代码: #include<stdio.h> #de ...
- Windows读取文本文件后的显示过程
Windows首先将文本数据转换到它内部使用的编码格式:Unicode,然后按照文本的Unicode去字体文件中查找字体图像,最后将图像显示到窗口上. 总结一下前面的分析,文字的显示应该是这样的: 步 ...