zoukankan      html  css  js  c++  java
  • Selenium_WebDriver_控制浏览器

    版权声明:本文为博主原创文章,转载请注明出处。


     浏览器环境:

      ①GoogleChrome:60

      ②chromedriver:2.30;

    访问

    操作

    方法

    示例

    访问页面

    void get(java.lang.String url)

    driver.get("http://xueshu.baidu.com");

    void to(java.lang.String url)

    driver.navigate().to("http://news.baidu.com");  

    控制浏览器窗口大小

    浏览器窗口大小

    方法

    示例

    自定义大小

    void setSize(Dimension targetSize)

    说明:设置窗体大小为480*800

    实现:driver.manage().window().setSize(new Dimension(480, 800));

    全屏

    void maximize()

    说明:设置窗体为全屏

    实现:driver.manage().window().maximize();

    控制浏览器后退、前进

      在使用浏览器浏览网页时,浏览器提供了后退和前进按钮,可以方便地在浏览过的网页之间切换,WebDriver也提供了一些方法用于这些操作;

    操作

    方法

    示例

    后退

    void back()

    driver.navigate().back();

    前进

    void forward()

    driver.navigate().forward();

    driver.getCurrentUrl()   //返回driver所停留的当前页的url

    刷新浏览器

      有时候我们在执行完某些操作后,需要手动刷新浏览器,以便获取最新的数据。

    操作

    方法

    示例

    刷新

    void refresh()

    driver.navigate().refresh();

    滚动条滑动

       我们需要借助 JavaScript 来控制浏览器的滚动条。WebDriver 提供了 executeScript()方法来执行 JavaScript 代码。

    操作

    方法

    说明

    滚动条移动

    executeScript()

    操作对象类型是 JavascriptExecutor,需要将WebDriver转为JavascriptExecutor

    示例1

    //移动到指定的坐标

    ((JavascriptExecutor)driver).executeScript("window.scrollTo(100,900);");

    示例2

    //移动到页面最底部

    ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");

     附测试代码:package com.SeleniumLib.jase;

    package com.SeleniumLib.jase;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.Dimension;
    import org.openqa.selenium.JavascriptExecutor;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    
    public class ControlBrowser {
        public static void main(String[]args) throws InterruptedException{
            
            System.out.println("start selenium");
    
            WebDriver   driver;    
            System.setProperty("webdriver.chrome.driver","D:/selenium-java-3.5.3/chromedriver.exe");   //chromedriver驱动的本地存放路径   
            driver = new ChromeDriver(); 
    
            //访问页面
            /*driver.navigate().to("http://news.baidu.com");
            driver.get("http://xueshu.baidu.com");*/
            
            //控制浏览器窗口大小
            /*driver.manage().window().setSize(new Dimension(480, 800));//设置浏览器大小为480*800
            driver.manage().window().maximize();//浏览器全屏显示
            driver.get("http://www.baidu.com/"); */
            
            //控制浏览器后退、前进
            /*driver.get("http://news.baidu.com");
            System.out.println("CurrentUrl"+driver.getCurrentUrl()); 
            driver.get("http://xueshu.baidu.com");
            System.out.println("CurrentUrl"+driver.getCurrentUrl()); 
            driver.navigate().back();
            System.out.println("CurrentUrl"+driver.getCurrentUrl()); 
            driver.navigate().forward();
            System.out.println("CurrentUrl"+driver.getCurrentUrl()); */
            
            //刷新浏览器
            /*driver.get("http://news.baidu.com");
            driver.navigate().refresh();*/
            
            //滚动条下拉操作
            driver.get("http://www.baidu.com");
            driver.findElement(By.id("kw")).sendKeys("Selenium");
            driver.findElement(By.id("su")).click();
            Thread.sleep(2000);
            ((JavascriptExecutor)driver).executeScript("window.scrollTo(100,900);");  //移动到指定的坐标(X,Y),X表示水平的左间距,Y表示垂直的上边距
            Thread.sleep(2000);
            ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");  //移动到页面最底部   
            
            
            System.out.println("end selenium");
            ///////driver.close();  //测试时为了更直观直接注释掉了,也可使用延时
           
        }
    }

      


    参考:

    Selenium Java API:https://seleniumhq.github.io/selenium/docs/api/java/index.html

    http://blog.csdn.net/jlminghui/article/details/50477283

     

  • 相关阅读:
    老刘 Yii2 源码学习笔记之 Component 类
    zanphp 初探----安装篇
    php SQL 防注入的一些经验
    基于FPGA的CNN算法移植(五)算法优化方向汇总
    基于FPGA的CNN算法移植(四)地平线等公司的 ADAS 产品
    基于FPGA的CNN算法移植(三)软件算法架构分析
    基于FPGA的CNN算法移植(二)硬件架构
    基于FPGA的CNN算法移植(一)概述
    ubuntu下无法启动vivado SDK的解决办法(二)
    HDMI调试经验分享(二)—— 基于zc706的ADV7511的实现
  • 原文地址:https://www.cnblogs.com/xpp142857/p/7551606.html
Copyright © 2011-2022 走看看