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操作浏览器的资料请关注代码网其它相关文章!
发表评论