当前位置: 代码网 > it编程>编程语言>Java > java+selenium实现自动化操作浏览器

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

2025年05月14日 Java 我要评论
1.简介在web自动化的操作中,我们通常需要使用一些方法来操作浏览器,今天就来学习一下。这一篇宏哥主要是介绍一下,在自动化测试的时候,我们常见的一些浏览器操作有哪些,宏哥将会一一介绍和讲解。2.浏览器

1.简介

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

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.com";
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.println(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代码设计

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 =new 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.manage().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,控制台输出,如下图所示:

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

4.小结

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

5.拓展

其他方法

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

// 返回当前的浏览器的窗口句柄
 string currentwindowhandle = driver.getwindowhandle()
 // 返回当前的浏览器的所有窗口句柄
 set<string> allwindowhandles = driver.getwindowhandles();
 // 返回当前页面的源码
 string currentpagesource = getpagesource()

以上就是java+selenium实现自动化操作浏览器的详细内容,更多关于java selenium操作浏览器的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com