开发者

java+selenium实现自动化操作浏览器

目录
  • 1.简介
  • 2.浏览器操作
    • 2.1打开浏览器 
    • 2.2打开url
    • 2.3浏览器最大化
    • 2.4浏览器刷新
    • 2.5浏览器前进
    • 2.6浏览器后退
    • 2.7浏览器位置和设置窗口位置
    • 2.8浏览器窗口大小
    • 2.9返回当前的url和title
    • 2.10关闭浏览器
  • 3.项目实战
    • 3.1代码设计
    • 3.2参考代码
    • 3.3运行代码
  • 4.小结
    • 5.拓展

      1.简介

      在Web自动化的操作中,我们通常需要使用一些方法来操作浏览器,今天就来学习一下。这一篇宏哥主javascript要是介绍一下,在自动化测试的时候,我们常见的一些浏览器操作有哪些,宏哥将会一一介绍和讲解。

      2.浏览器操作

       宏哥首先介绍一下常用的基本操作,然后再通过具体实例给小伙伴或者童鞋们演示一下。

      2.1打开浏览器 

      //IE浏览器
      System.setProperty("webdriver.ie.driver", ".\\Tools\\IEDriverServer.exe");
      WebDriver driver = new InternetExplorerDriver();
       
      //Chrome
      System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
       
      //FireFox(自定义安装)
      System.setProperty("webdriver.firefox.bin", "D:\\ProgramFiles\\Mozilla Firefox\\firefox.exe");
      //FireFox版本大于48,默认安装
      System.setProperty("webdriver.firefox.marionette", ".\\Tools\\geckodriver.exe");
      //FireFox版本小于48
      System.setProperty("webdriver.firefox.marionette", ".\\Tools\\geckodriver.exe");
      WebDriver driver = new FirefoxDriver();

      2.2打开url

      //两种方式实现的效果一样
      String url = "http://www.baidu.comjavascript";
      driver.get(url);
      driver.navigate().to(url);

      2.3浏览器最大化

       窗口最大化,maximize()方法可以将浏览器窗口最大化

      // 浏览器窗口最大
      driver.manage().window().maximize();

      2.4浏览器刷新

       refresh()方法可以在自动化测试的时候刷新当前页面

      // 当前页刷新
      driver.navigate().refresh();

      2.5浏览器前进

       forward()方法可以模拟浏览器的前进操作

      // 前进,跳转到下一页
      driver.navigate().forward ();

      2.6浏览器后退

       back()方法可以模拟浏览器的回退操作

      // 后退,跳转到上一页
      driver.navigate().back();

      2.7浏览器位置和设置窗口位置

      浏览器的位置设置getPosition()

      * 注意targetPosition是一个点对象,把一个点作为参数传入

       * 声明一个 point 对象,两个 150 表示浏览器的位置相对于屏幕左上角(0,0)的横纵坐标举例

      Point targetPosition = new Point(150,150);
      driver.manage().window().setPosition(targetPosition);
      System.out.prihttp://www.devze.comntln(driver.manage().window().getPosition());

      2.8浏览器窗口大小

      获得窗口大小,getSize()方法能够获得窗口的尺寸信息,返回一个Dimension对象,该对象包括了窗口的高度,宽度信息

       *注意targetSize是一个对象传入,也不可以直接写成 1366*768

       * 1366 * 768          表示窗口的长和宽

      Dimension targetSize = new Dimension(1366,768);
      driver.manage().window().setSize(targetSize);
      System.out.println(driver.manage().window().getSize());

      2.9返回当前的url和title

      // 返回当前页面的Ttile
      String title = driver.getTitle();
      // 返回当前页面的url
      String currentUrl = driver.getCurrentUrl();

      2.10关闭浏览器

      // 关闭当前页面
      driver.close();
      // 关闭由selenium所启动的所有页面
      driver.quit();

      3.项目实战

      以度娘为例,打开浏览器设置浏览器的位置,然后再设置浏览器的大小。最后将浏览器最大化。查询“北京宏哥”后,刷新页面执行回退到百度首页,然后有执行前进进入到搜索“北京宏哥”页面。

      3.1代码设计

      java+selenium实现自动化操作浏览器

      3.2参考代码

      package lessons;
      
      import org.openqa.selenium.By;
      import org.openqa.selenium.Dimension;
      import org.openqa.selenium.Point;
      import org.openqa.selenium.WebDriver;
      import org.openqa.selenium.WebElement;
      import org.openqa.selenium.chrome.ChromeDriver;
      
      /**
       * @author 北京-宏哥
       *
       * 2021年9月6日
       */
      public class Windows {
          
          public static void main(String[] args) throws InterruptedException {
              //打开浏览器 
              System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe"); //指定驱动路径
      
              WebDriver driver =nepythonw ChromeDriver();
              
              //设置浏览器出现的位置
                driver.manage().window().setPosition(new Point(1350, 200));
                Thread.sleep(1000);
                //设置浏览器大小
                driver.manage().window().setSize(new Dimension(200, 500));
                Thread.sleep(1000);
                //获取浏览器位置和大小信息
                System.out.println("浏览器所在位置:"+driver.manage().window().getPosition());
                System.out.println("浏览器大小:"+driver.manage().window().getSize());
                //浏览器满屏,覆盖任务栏
              //webDriver.manage().window().fullscreen();
                //浏览器最大化,不覆盖任务栏
                driver.man编程age().window().maximize();
                System.out.println("浏览器最大化");
              //打开URL
              driver.get("http://www.baidu.com");
              System.out.println("打开URL");
              Thread.sleep(2000);
              
              //输入“北京宏哥”,点击“百度一下”
              WebElement SearchBox  = driver.findElement(By.xpath( "//*[@id='kw']" ));
              SearchBox.sendKeys("北京宏哥");
              WebElement SearchButton  = driver.findElement(By.xpath("//*[@id='su']"));
              
              SearchButton.click();
              
              // 当前页刷新
              driver.navigate().refresh();
              System.out.println("刷新当前页面");
              Thread.sleep(2000);
              //执行浏览器后退
              driver.navigate().back();
              System.out.println("back... this www.baidu.com");
              Thread.sleep(2000);
       
              //执行浏览器前进
              driver.navigate().forward();
              System.out.println("forward..."+driver.getCurrentUrl ());
              Thread.sleep(2000);
       
              driver.quit();
              Thread.sleep(2000);
      
              driver.quit();
          }
      
      }

      3.3运行代码

      1.运行代码,右键Run AS->Java Application,控制台输出,如下图所示:

      java+selenium实现自动化操作浏览器

      2.运行代码后电脑端的浏览器的动作,可以看到查询“北京宏哥”后,刷新页面执行回退到百度首页,然后有执行前进进入到搜索“北京宏哥”页面。

      4.小结

      在代码报错处,提示导入包,要注意导入selenium的包(一个java包和一个selenium包),否则还报错,没有这个方法。如下图所示:

      java+selenium实现自动化操作浏览器

      5.拓展

      其他方法

      这些基本上在前边的文章中宏哥都介绍过了这里就简单的提一下,不做赘述了。

      // 返回当前的浏览器的窗口句柄
       String currentWindowHandle = driver.getWindowHandle()
       // 返回当前的浏览器的所有窗口句柄
       Set<String> allWindowHandles = driver.getWindowHandles();
       // 返回当前页面的源码
       String currentPageSource = getPageSource()

      以上就是java+selenium实现自动化操作浏览器的详细内容,更多关于java selenium操作浏览器的资料请关注编程客栈(www.devze.com)其它相关文章!

      0

      上一篇:

      下一篇:

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      最新开发

      开发排行榜