zoukankan      html  css  js  c++  java
  • webdriverAPI1

     
    public class TestApiOne {
       
        WebDriver driver;
        String url1="http://www.xxx.com";
        String url2="http://www.baidu.com";
       
        @BeforeMethod
        public void beforeTest(){       
            System.setProperty("webdriver.firefox.bin","D:\my program\firefox\firefox.exe");
            driver = new FirefoxDriver();
        }   
       
        //获取页面的源代码和URL
        @Test
        public void getPageSourceAndUrl(){
            driver.get(url1);
            String pageSource = driver.getPageSource();
            System.out.println(pageSource);       
            String currentUrl = driver.getCurrentUrl();
            System.out.println(currentUrl);
           
        }
      
        //模拟浏览器的后退功能
        @Test
        public void visitNextUrl(){   
            driver.navigate().to(url1);
            System.out.println(driver.getTitle());
            driver.navigate().to(url2);
            System.out.println(driver.getTitle());
            driver.navigate().back();
            System.out.println(driver.getTitle());
            driver.navigate().forward();
            System.out.println(driver.getTitle());               
        }
       
        //刷新当前页面
        @Test
        public void freshCurrentPage(){       
            driver.get(url1);
            driver.navigate().refresh();       
        }
       
        //操作浏览器窗口
        @Test
        public void operateBrowser(){
            Point point = new Point(150,150);
            Dimension dimension = new Dimension(500,500);
            driver.manage().window().setPosition(point);
            driver.manage().window().setSize(dimension);       
            System.out.println(driver.manage().window().getPosition());
            System.out.println(driver.manage().window().getSize());
            driver.manage().window().maximize();
            driver.get(url1);       
        }
               
        //获取页面的tilte属性
        @SuppressWarnings("deprecation")
        @Test
        public void getTitle(){
            driver.get(url1);
            String title = driver.getTitle();
            System.out.println(title);
            Assert.assertEquals("xxx网-首页", title);
        }
               
        //使用title属性识别和操作新弹出的浏览器窗口
        @Test
        public void identifyPopWindowByTitle(){
            driver.get(url1);
            String parentWindowHandle = driver.getWindowHandle();
            WebElement link = driver.findElement(By.linkText("我的账户"));
            link.click();
            Set allWindowsHandles = driver.getWindowHandles();
            if(!allWindowsHandles.isEmpty()){
                for(String windowsHandle:allWindowsHandles){
                    try{
                        if("xxx- 用户登录".equals(driver.switchTo().window(windowsHandle).getTitle())){
                            driver.findElement(By.id("user_name")).sendKeys("wytest");;
                        }
                    }catch(NoSuchWindowException e){
                        e.printStackTrace();
                    }
                }
            }
            driver.get(url1);
            System.out.println(driver.getTitle());
            try{
                Thread.sleep(3000);
            }catch(InterruptedException e){
                e.printStackTrace();
            }
            Assert.assertEquals(driver.getTitle(), "xxx网-首页");
        }
                       
        //杀掉浏览器进程
        @Test
        public void operateWindowsProcess(){
            driver.get(url1);
            try{
                Thread.sleep(5000);
            }catch(InterruptedException e){
                e.printStackTrace();
            }
            WindowsUtils.tryToKillByName("firefox.exe");
            //WindowsUtils.tryToKillByName("iexplore.exe");
            //WindowsUtils.tryToKillByName("chrome.exe");       
        }
       
        //当前浏览器窗口截屏
        @Test
        public void captureScreenInCurrentWindow(){
            driver.get(url1);
            File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
            try{
                FileUtils.copyFile(srcFile, new File("D:\ScreenShot\test.png"));
            }catch(Exception e){
                e.printStackTrace();
            }
        }
     
        //拖拽网页元素
        @Test
        public void dragPageElement(){
            driver.get(url1);
            WebElement dragable=driver.findElement(By.id("search_btn"));
           
            //向下移动10个
            for(int i=0;i<5;i++){
                new Actions(driver).dragAndDropBy(dragable,0,10).build().perform();
            }
            //向右移动10个
            for(int i=0;i<5;i++){
                new Actions(driver).dragAndDropBy(dragable,10,0).build().perform();
            }
        }

        //模拟键盘的操作
        @Test
        public void clickKeys(){
            driver.get(url1);
            Actions action = new Actions(driver);
            action.keyDown(Keys.CONTROL);
            action.keyDown(Keys.SHIFT);
            action.keyDown(Keys.ALT);
            action.keyUp(Keys.CONTROL);
            action.keyUp(Keys.SHIFT);
            action.keyUp(Keys.ALT);
            action.keyDown(Keys.SHIFT).sendKeys("aaaa").perform();
        }
           
        //模拟鼠标右键
        @Test
        public void rightClickMouse(){
            driver.get(url1);
            Actions action=new Actions(driver);
            action.contextClick(driver.findElement(By.id(""))).perform();
        }
           
        //在指定元素上方进行鼠标悬浮
        @Test
        public void roverOnElement(){
            WebElement link1 = driver.findElement(By.id(""));
            WebElement link2 = driver.findElement(By.id(""));
               
            Actions action = new Actions(driver);
            action.moveToElement(link1).perform();
            try{
                Thread.sleep(3000);
            }catch(InterruptedException e){
                e.printStackTrace();
            }     
            action.moveToElement(link2).perform();
        }
           
        //在指定元素上进行鼠标单机鼠标左键和释放操作
        @Test
        public void mouseClickAndRelease(){
            WebElement div = driver.findElement(By.id(""));
            Actions action = new Actions(driver);
            action.clickAndHold(div).perform();
            try{
                Thread.sleep(3000);
            }catch(InterruptedException e){
                e.printStackTrace();
            }
               
            action.release(div).perform();
            try{
                Thread.sleep(3000);
            }catch(InterruptedException e){
                e.printStackTrace();
            }   
        }
           

        @AfterMethod
        public void afterMethod() {
            driver.quit();
        }
       
    }
  • 相关阅读:
    java-数组
    编程练习
    java-循环语句
    java-条件语句if&switch
    JAVA-运算符
    JAVA-常量
    springAOP源码分析之篇一:配置文件的解析
    spring IOC容器的扩展
    spring IOC之篇六 bean的加载---bean的创建
    spring IOC之篇五 bean的加载--缓存中获取
  • 原文地址:https://www.cnblogs.com/vanya/p/6742781.html
Copyright © 2011-2022 走看看