zoukankan      html  css  js  c++  java
  • selenium web driver 配合使用testng

    首先为eclipse添加testng插件

    1. 步骤如下:help->Install New SoftWare...

    2. 添加testng链接,该链接可以在这里找到

    For the Eclipse plug-in, we suggest using the update site:

    • Select Help / Software updates / Find and Install.
    • Search for new features to install.
    • New remote site.
    • For Eclipse 3.4 and above, enter http://beust.com/eclipse.
    • For Eclipse 3.3 and below, enter http://beust.com/eclipse1.
    • Make sure the check box next to URL is checked and click Next.
    • Eclipse will then guide you through the process.

     

    4.下载并安装 testng

    testng和junit相比为什么要使用testng

    1. testng 和junit功能基本相同testng支持suite,junit执行一大堆case,如果个别fail,只能所有case重跑

    而testng可以单独跑

    2.testng能生成漂亮的测试报告,比较直观

    添加一个testng case,复制一份,保存为

    openlinkTest1.java
    package baidu;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    import junit.framework.Assert;
    
    import org.apache.commons.io.FileUtils;
    import org.openqa.selenium.By;
    import org.openqa.selenium.OutputType;
    import org.openqa.selenium.TakesScreenshot;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.testng.annotations.AfterMethod;
    import org.testng.annotations.BeforeMethod;
    import org.testng.annotations.Test;
    
    public class openlinkTest {
    
     
      public static void snapshot(TakesScreenshot drivername, String filename)
      {
          // this method will take screen shot ,require two parameters ,one is driver name, another is file name
          
          
        File scrFile = drivername.getScreenshotAs(OutputType.FILE);
            // Now you can do whatever you need to do with it, for example copy somewhere
            try {
                System.out.println("save snapshot path is:E:/"+filename);
                FileUtils.copyFile(scrFile, new File("E:\"+filename));
            } catch (IOException e) {
                // TODO Auto-generated catch block
                System.out.println("Can't save screenshot");
                e.printStackTrace();
            } 
            finally
            {
                System.out.println("screen shot finished");
            }
      }
      @BeforeMethod
      public void tearUp()
      {
        //    WebDriver driver = new ChromeDriver();
      }
      @Test
        public static void runSelenium() throws InterruptedException
        {
             
             String URL="http://www.baidu.com";
             Pattern p = Pattern.compile("http");  
             Matcher m = p.matcher(URL);  
             
    
            if(m.find())
            {
                System.out.println(URL);
            }
            System.setProperty("webdriver.chrome.driver", "E:\chromedriver.exe"); 
            WebDriver driver = new ChromeDriver();
            driver.get(URL);
            //max size the browser
            driver.manage().window().maximize(); 
     /*
            Navigation navigation = driver.navigate();
             navigation.to(URL);*/
             Thread.sleep(2000);
             snapshot((TakesScreenshot)driver,"open_baidu.png");
             //WebElement reg=driver.findElement(By.name("tj_reg"));
             //reg.click();
             //    WebElement keyWord = driver.findElement(By.id("kw1"));
             
             //find the element
             WebElement keyWord = driver.findElement(By.xpath("//input[@id='kw1']"));
            keyWord.clear();
            //send key words 
             keyWord.sendKeys("Selenium");
             Thread.sleep(3000);
              snapshot((TakesScreenshot)driver,"input_keyWord.png");
             
     
             
              WebElement submit = driver.findElement(By.id("su1"));
              
              System.out.println(submit.getLocation());
              submit.click();
              //System.out.println(driver.getWindowHandle());
             Thread.sleep(5000);
              
            // System.out.println(driver.getPageSource());
            
            String pageSource=driver.getPageSource();
           //  System.out.println(pageSource);
            //WebElement link =driver.findElement(By.xpath(SELENIUM_LINK));
            WebElement link =driver.findElement(By.xpath("//*[@id="1"]/h3/a"));     //*[@id="1"]/h3/a
            link.click();
            Thread.sleep(5000); 
            driver.switchTo().window(driver.getWindowHandles().toArray(new String[0])[1]);
         
            //get page title
            System.out.println(driver.getTitle());
             Thread.sleep(5000);
        //     navigation.back();
              snapshot((TakesScreenshot)driver,"open_bake.png");
             System.out.println(driver.getTitle()+"
    "+driver.getCurrentUrl());
             Assert.assertEquals(driver.getTitle(),"Selenium - Web Browser Automation");
             driver.quit();
           
        }
             
         @AfterMethod 
         public void tearDown()
         {
             //driver.quit();
             System.out.println("------------END----------------------");
         }
    }

    添加testng suite

    <?xml version="1.0" encoding="UTF-8"?>
    <suite name="Suite" parallel="false">
      <test name="Test">
        <classes>
          <class name="baidu.openlinkTest"/>
          <class name="baidu.openlinkTest1"/>
        </classes>
      </test> <!-- Test -->
    </suite> <!-- Suite -->

     执行case:

    结果如下

    [TestNG] Running:
    C:UsersYoungworkspaceseleniumsrcaidu estng.xml

    http://www.baidu.com
    Starting ChromeDriver (v2.9.248315) on port 28218
    save snapshot path is:E:/open_baidu.png
    screen shot finished
    save snapshot path is:E:/input_keyWord.png
    screen shot finished
    (858, 179)
    Selenium - Web Browser Automation
    save snapshot path is:E:/open_bake.png
    screen shot finished
    Selenium - Web Browser Automation
    http://docs.seleniumhq.org/
    ------------END----------------------
    http://www.baidu.com
    Starting ChromeDriver (v2.9.248315) on port 5568
    save snapshot path is:E:/open_baidu.png
    screen shot finished
    save snapshot path is:E:/input_keyWord.png
    screen shot finished
    (858, 179)
    Selenium_百度百科
    save snapshot path is:E:/open_bake.png
    screen shot finished
    Selenium_百度百科
    http://baike.baidu.com/subview/478050/6464537.htm?fr=aladdin
    ------------END----------------------

    ===============================================
    Suite
    Total tests run: 2, Failures: 1, Skips: 0
    ===============================================

  • 相关阅读:
    如何用代码来修改目录的权限
    php广告显示设置存放记录的目录代码
    本函数用来改变目前 php 执行的目录到新的 directory 目录中
    for循环的时候是按照数字递增会造成一些元素被遗漏
    php常用的对字符串进行加密的算法
    关于如何用php 获取当前脚本的url
    将正确的 HTTP 头转发给后端服务器的一些问题
    应用服务器上部署自己的 blog 和 wiki 组件。
    PHP统计字符串里单词查询关键字
    (在线工具)JSON字符串转换成Java实体类(POJO)
  • 原文地址:https://www.cnblogs.com/tobecrazy/p/3602775.html
Copyright © 2011-2022 走看看