1. public class Base {
  2. SimpleDateFormat formatterTime = new SimpleDateFormat("yyyyMMdd_hhmmssa");
  3. SimpleDateFormat formatterDate = new SimpleDateFormat("yyyyMMdd");
  4.  
  5. private Calendar now() {
  6. Calendar now = Calendar.getInstance();
  7. return now;
  8. }
  9.  
  10. public static Map<String, String> initialProperties(String properityName) {
  11. String key = "";
  12. String value = "";
  13. Map<String, String> map = null;
  14. ResourceBundle bound = PropertyResourceBundle.getBundle(properityName, Locale.ENGLISH);
  15. Enumeration<String> enumeration = bound.getKeys();
  16. if (enumeration != null) {
  17. map = new HashMap<String, String>();
  18. while (enumeration.hasMoreElements()) {
  19. key = (String) enumeration.nextElement();
  20. value = bound.getString(key);
  21. map.put(key, value);
  22. }
  23. }
  24. return map;
  25. }
  26.  
  27. public static WebDriver setUp_IEDriver() throws Exception {
  28. System.setProperty("webdriver.ie.driver", "./IEDriverServer.exe");
  29. DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
  30. capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
  31. WebDriver driver = new InternetExplorerDriver(capabilities);
  32. driver.manage().window().maximize();
  33. return driver;
  34. }
  35.  
  36. public WebDriver setUp_ChromeDriver(){
  37. System.setProperty("webdriver.chrome.driver", "./chromedriver.exe");
  38. WebDriver driver = new ChromeDriver();
  39. driver.manage().window().maximize();
  40. return driver;
  41. }
  42.  
  43. public WebDriver setUp_FirefoxDriver(){
  44. System.setProperty("webdriver.ie.driver", "C:/Program Files/Mozilla Firefox");
  45. WebDriver driver = new FirefoxDriver();
  46. return driver;
  47. }
  48.  
  49. public static boolean isElementPresent(WebDriver driver, By by) {
  50. try {
  51. driver.findElement(by);
  52. return true;
  53. } catch (NoSuchElementException e) {
  54. e.printStackTrace();
  55. return false;
  56. }
  57. }
  58.  
  59. public void screenshot(WebDriver driver, String path){
  60. File folder = new File(path);
  61. try {
  62. if(!folder.exists()){
  63. folder.mkdirs();
  64. }
  65. Dimension window_size = driver.manage().window().getSize();
  66. // BufferedImage image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
  67. BufferedImage image = new Robot().createScreenCapture(new Rectangle(window_size.getWidth(), window_size.getHeight()));
  68. String screenshotName = path+formatterTime.format(now().getTime())+".png";
  69. ImageIO.write(image, "png", new File(screenshotName));
  70. System.out.println("Screenshot "+screenshotName+" has been saved to " + path);
  71. } catch (HeadlessException e) {
  72. e.printStackTrace();
  73. } catch (AWTException e) {
  74. e.printStackTrace();
  75. } catch (IOException e) {
  76. e.printStackTrace();
  77. }
  78. }
  79.  
  80. public void pageshot(WebDriver driver, String path){
  81. File folder = new File(path);
  82. try {
  83. if(!folder.exists()){
  84. folder.mkdirs();
  85. }
  86. String screenshotName = path+formatterTime.format(now().getTime())+".png";
  87. File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
  88. FileUtils.copyFile(screenshot, new File(screenshotName));
  89. System.out.println("Screenshot "+screenshotName+" has been saved to " + path);
  90. } catch (HeadlessException e) {
  91. e.printStackTrace();
  92. } catch (IOException e) {
  93. e.printStackTrace();
  94. }
  95. }
  96.  
  97. public boolean windowStatus(WebDriver driver, final String window_status){
  98. WebDriverWait wait = new WebDriverWait(driver, 120);
  99. boolean windowStatus = wait.until(new ExpectedCondition<Boolean>(){
  100. public Boolean apply(WebDriver driver){
  101. JavascriptExecutor js = (JavascriptExecutor) driver;
  102. return js.executeScript("return window.status").toString().trim().equals(window_status);
  103. }});
  104. return windowStatus;
  105. }
  106.  
  107. public void waitForElementLoadByXpath(WebDriver driver, final String xpath){
  108. WebDriverWait wait = new WebDriverWait(driver, 300);
  109. wait.until(new ExpectedCondition<WebElement>(){
  110. public WebElement apply(WebDriver driver) {
  111. WebElement element = driver.findElement(By.xpath(xpath));
  112. return element;
  113. }
  114. });
  115. }
  116.  
  117. public void waitForPageLoad(WebDriver driver){
  118. WebDriverWait wait = new WebDriverWait(driver, 300);
  119. wait.until(new ExpectedCondition<Boolean>(){
  120. public Boolean apply(WebDriver driver) {
  121. return ((JavascriptExecutor)driver).executeScript("return document.readyState").toString().equalsIgnoreCase("complete");
  122. }
  123. });
  124. }
  125.  
  126. public static void waitForDivLoad(WebDriver driver) {
  127. WebDriverWait wait = new WebDriverWait(driver, 30);
  128. wait.until(new ExpectedCondition<Boolean>() {
  129. public Boolean apply(WebDriver driver) {
  130. return ((JavascriptExecutor) driver).executeScript("return document.getElementById('ctl00_ContentPlaceHolder1_ClientProgress').style.display").toString().equalsIgnoreCase("block");
  131. }
  132. });
  133. }
  134. }

Selenium - WebDriver 小结(1)的更多相关文章

  1. 基于python的Selenium使用小结

    之前介绍过基于Unittest和TestNG自动化测试框架,然而基于Web端的测试的基础框架是需要Selenium做主要支撑的,这里边给大家介绍下Web测试核心之基于Python的Selenium 一 ...

  2. 【转载】Selenium WebDriver的简单操作说明

    转载自:http://blog.csdn.net/xiao190128/article/details/49784121 1.打开一个测试浏览器 对浏览器进行操作首先需要打开一个浏览器,接下来才能对浏 ...

  3. Selenium WebDriver的简单操作说明

    [From] http://blog.csdn.net/xiao190128/article/details/49784121 1.打开一个测试浏览器 对浏览器进行操作首先需要打开一个浏览器,接下来才 ...

  4. selenium webdriver学习(二)————对浏览器的简单操作(转载JARVI)

    selenium webdriver学习(二)————对浏览器的简单操作 博客分类: Selenium-webdriver   selenium webdriver对浏览器的简单操作 打开一个测试浏览 ...

  5. Selenium WebDriver Code

    Selenium WebDriver 用于模拟浏览器的功能,可以做网站测试用,也可以用来做crawler.我是用eclipse开发的,导入selenium-server-standalone-***. ...

  6. 使用httpclient 调用selenium webdriver

    结合上次研究的selenium webdriver potocol ,自己写http request调用remote driver代替selenium API selenium web driver ...

  7. selenium webdriver 右键另存为下载文件(结合robot and autoIt)

    首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...

  8. Selenium Webdriver java 积累一

    Selenium Webdriver 学习: http://jarvi.iteye.com/category/203994 https://github.com/easonhan007/webdriv ...

  9. Selenium的PO模式(Page Object Model)|(Selenium Webdriver For Python)

            研究Selenium + python 自动化测试有近两个月了,不能说非常熟练,起码对selenium自动化的执行有了深入的认识. 从最初无结构的代码,到类的使用,方法封装,从原始函数 ...

随机推荐

  1. 10.26_地图应用, OSC_doc文档集合,node-webkit

    (1)地图:关于电子地图的加载.展示方式,知乎上有篇文章写的很好:http://www.zhihu.com/question/21530085对于地图的导航距离计算呢?原理是什么? (2)node-w ...

  2. Glibc和GCC,ARM-LINUX-GCC的关系

    看到有些贴子/blog上提到「Glibc编译器」,这是个错误的用语.Glibc不是编译器,Glibc不是编译器,Glibc不是编译器.重要的事情说三遍.GCC才是编译器.

  3. 幾種方法實現C語言Macro for debug

    1. #include <stdio.h> #include <stdlib.h> #define DEBUG 1 #ifdef DEBUG #define DEBUG_PRI ...

  4. thinkphp 缓存写入失败,网站报错

    周末,正在家里休息,同事突然call 我,说网站打不开了,网站一直很正常的,突然成这样,肯定某个地方出问题了, 原来是网站所在的硬盘分区,没空间了,被mysql的日志占满了!!! 哎,好好的周末,在公 ...

  5. ubuntu 在XP下硬盘安装

    以下选择在XP下用 grub4dos 安装 ubuntu 12.04版本 需要下载两个文件:一个是grub4dos,另一个是 ubutuntu 镜像文件 grub4dos下载地址:http://dow ...

  6. Winform动态加载TabControl用法

    private void BindTabData() { dtIPD = new DataTable(); //drItem = new DataTable(); //获取[项目大类]列表显示于 Ta ...

  7. SQL 添加字段和默认值脚本

    --插入字段和默认值alter table Acc_WayBill add DeclaredValue nvarchar(50)goEXEC sys.sp_addextendedproperty @n ...

  8. React新接触

    html5页面的开始引入: <script src="../build/react.js"></script>   <!--核心库--> < ...

  9. jquery验证网址格式

    在input中输入网址,用jquery验证输入网址是否正确 <input type="text" name="input-web" class=" ...

  10. hadoop1中partition和combiner作用

    ---恢复内容开始--- 1.解析Partiton 把map任务的输出的中间结果按照key的范围进行划分成r份,r代表reduce任务的个数.hadoop默认有个类HashPartition实现分区, ...