一、Selenium简介

Selenium3.0主要变更特性:

①移除seleniumRC

②FireFox和Safari推出了自己的driver(geckodriver 和 Safaridriver)

③Selenium3 支持 IE9+,Selenium2 支持 7-11

④全面拥抱java8

二、Selenium实现自动打开浏览器

1.打开火狐浏览器

注意:火狐48以下版本可以直接使用webdriver自带的进行打开浏览器

火狐48以上版本则需要使用版本对应的geckodriver

public class OpenBrowserTest {
@Test
/*火狐是默认安装在C盘的启动方法*/
/* public void openFirefox1(){
WebDriver webDriver = new FirefoxDriver();
}*/
/*火狐不是默认安装在C盘 需要写上路径*/
public void openFirefox2(){
//指定firefox 安装路径
System.setProperty("webdriver.firefox.bin","F:\\Program Files (x86)\\Firefox\\Mozilla Firefox\\firefox.exe");
//启动firefox浏览器
WebDriver webDriver = new FirefoxDriver();
}
}

2.打开chrome浏览器

右上角->帮助-->关于chrome-->查看当前chrome版本-->到指定的地址    去下载对应的ChromeDriver

附chromedriver与chrome的对应关系表:

chromedriver版本 支持的Chrome版本
v2.40 v66-68
v2.39 v66-68
v2.38 v65-67
v2.37 v64-66
v2.36 v63-65
v2.35 v62-64
v2.34 v61-63
v2.33 v60-62
v2.32 v59-61
v2.31 v58-60
v2.30 v58-60
v2.29 v56-58
v2.28 v55-57
v2.27 v54-56
v2.26 v53-55
v2.25 v53-55
v2.24 v52-54
v2.23 v51-53
v2.22 v49-52
v2.21 v46-50
v2.20 v43-48
v2.19 v43-47
v2.18 v43-46
v2.17 v42-43
v2.13 v42-45
v2.15 v40-43
v2.14 v39-42
v2.13 v38-41
v2.12 v36-40
v2.11 v36-40
v2.10 v33-36
v2.9 v31-34
v2.8 v30-33
v2.7 v30-33
v2.6 v29-32
v2.5 v29-32
v2.4 v29-32

映射表转自:

http://blog.csdn.net/huilan_same/article/details/51896672

从对应的地址下载 与自己的浏览器对应的 chromedriver版本:http://chromedriver.storage.googleapis.com/index.html

project-->右键-->new--->Directory-->drivers-->把当前下载的拉进来--->则这个目录为写在webdriver内的property的目录。

 @Test
public void openChrome(){
/*将下载好的chrome驱动拉进来,输入驱动路径*/
System.setProperty("webdriver.chrome.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\chromedriver.exe");
WebDriver webDriver = new ChromeDriver();
}

3.打开IE浏览器

进入指定页下载对应版本的IEDriver 进入索引页,首先选择版本号,IEDriverServer的版本号和Selenium的版本号一定要一致 建议选win32 如下:

IEDriverServer_Win32_2.53.0.zip

下载地址:http://selenium-release.storage.googleapis.com/index.html

操作与下载chromedriver类似,下载完后解压,解压后路径复制进对应的driver地址。

@Test
public void openIE(){
/*将下载好的IE驱动拉进来建议下载与webdriver一样的32位的版本,输入驱动路径*/
System.setProperty("webdriver.ie.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\IEDriverServer.exe");
WebDriver webDriver = new InternetExplorerDriver();
}

启动ie报错:

Started InternetExplorerDriver server (32-bit)
2.53.0.0
Listening on port 27578
Only local connections are allowed

org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Browser zoom level was set to 150%. It should be set to 100% (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 3.17 seconds
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'DESKTOP-UA0J10K', ip: '192.168.0.102', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_181'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver

针对windows vista和windows 7上的IE7或者更高的版本,必须在IE选项设置的安全页中,4个区域的启用保护模式的勾选都去掉(或都勾上),即保持四个区域的保护模式是一致的。如下图所示:

 右上角设置->internet选项->安全->

 点击窗口最上面-->选择显示菜单栏-->点击左上角-->工具--->查看当前显示是否为100%
浏览器的缩放比例必须设置为100%,这样元素定位才不会出现问题。

针对IE10和更高的版本,必须在IE选项设置中的高级页中,取消增强保护模式。

 开始”→“运行”命令,在“运行”对话框的“打开”栏中输入“regedit 命令”(windows+R)然后单击“确定1、查找到“项”——“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace”
 
 
 针对IE11,需要修改注册表。如果是32位的windows,key值为
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet 
Explorer\Main\FeatureControl\FEATURE_BFCACHE
64位的windows,key值为
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet 
Explorer\Main\FeatureControl\FEATURE_BFCACHE
如果key值不存在,就添加。之后在key内部创建一个iexplorer.exe,DWORD类型,值为0。

 4.windows10 才自带的浏览器 edge,不是windos10是没有这个浏览器的
不同的edge版本 下载的 对应版本也是不一样。
右上角....----> 设置 -->  拉到最下面查看当前edge的版本--17134

上对应的网站下载对应的driver

https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

往下拉,可以看到对应版本下载,放到指定文件夹

 @Test
public void openEdge(){
System.setProperty("webdriver.edge.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\MicrosoftWebDriver.exe");
WebDriver webDriver =new EdgeDriver();
}
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.Test; public class OpenBrowserTest {
@Test
/*火狐是默认安装在C盘的启动方法*/
/* public void openFirefox1(){
WebDriver webDriver = new FirefoxDriver();
}*/
/*火狐不是默认安装在C盘 需要写上路径*/
public void openFirefox2(){
//指定firefox 安装路径
System.setProperty("webdriver.firefox.bin","F:\\Program Files (x86)\\Firefox\\Mozilla Firefox\\firefox.exe");
//启动firefox浏览器
WebDriver webDriver = new FirefoxDriver();
}
@Test
public void openChrome(){
/*将下载好的chrome驱动拉进来,输入驱动路径*/
System.setProperty("webdriver.chrome.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\chromedriver.exe");
WebDriver webDriver = new ChromeDriver();
}
@Test
/* DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
WebDriver oWebDriver = new InternetExplorerDriver(ieCapabilities);*/
public void openIE(){
/*将下载好的IE驱动拉进来建议下载与webdriver一样的32位的版本,输入驱动路径*/
System.setProperty("webdriver.ie.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\IEDriverServer.exe");
WebDriver webDriver = new InternetExplorerDriver();
}
@Test
public void openEdge(){
System.setProperty("webdriver.edge.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\MicrosoftWebDriver.exe");
WebDriver webDriver =new EdgeDriver();
} }

三、selenium关闭浏览器

前提是先下载了对应的浏览器的driver并能进行正常打开浏览器

关闭当前窗口

driver.close();

关闭当前窗口并退出

driver.quit();

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test; public class ClosedBrowserTest {
@Test
public void closedChrome() throws InterruptedException {
//设置chrome路径
System.setProperty("webdriver.chrome.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\chromedriver.exe");
//实例化chromeDriver
WebDriver driver = new ChromeDriver();
//等待5000ms,马上开马上关闭则不明显
Thread.sleep();
//关闭当前窗口
//driver.close();
//完全退出浏览器 避免浏览器资源被耗尽,一般只会使用driver.close();
driver.quit();
}
}

(四)selenium打开和关闭浏览器的更多相关文章

  1. Python+selenium打开或关闭浏览器

    Python+selenium打开或关闭浏览器 一.打开或关闭火狐浏览器 1.       初始化一个webdriver实例对象driver,然后打开和关闭firefox浏览器.要用selenium打 ...

  2. Python + Selenium 基础篇 - 打开和关闭浏览器

    1.首先要下载浏览器对应的driver,并放到你的python安装目录 Chrome浏览器(chromedriver): http://npm.taobao.org/mirrors/chromedri ...

  3. Python+Selenium基础篇-打开和关闭火狐浏览器

    本节介绍如何初始化一个webdriver实例对象driver,然后打开和关闭firefox浏览器.要用selenium打开fiefox浏览器.首先需要去下载一个driver插件geckodriver. ...

  4. 🔥《手把手》系列基础篇之2-python+ selenium-打开和关闭浏览器(详细)

    1. 简介 本节介绍如何初始化一个webdriver实例对象driver,然后打开和关闭firefox浏览器.要用selenium打开fiefox浏览器.首先需要去下载一个driver插件geckod ...

  5. Selenium Java关闭浏览器

    在学习selenium的过程中发现一个问题,各种博客/教程都是教人用selenium的quit()和close()方法关闭浏览器. 但这不是我要的结果.这两个方法的前提是,用webdriver打开浏览 ...

  6. selenium 打开浏览器

    import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebE ...

  7. Selenium 3----窗口截图+关闭浏览器

    窗口截图 get_screenshot_as_file() 自动化用例是由程序执行的,因此有时候打印的错误信息并不十分明确.如果在脚本执行出错的时候能对当前窗口截图保存,那么通过图片就可以非常直观地看 ...

  8. javascript 使用 load 和 unload 事件,解决浏览器打开和关闭时需要做的操作。

    最近有一个业务,就是修改一个业务需要加上锁.也就是打开浏览器时,加锁.等用户操作完毕,关掉浏览器之后在把锁打开.一开始想问题很局限.只是想着,关闭浏览器解锁,刷新页面不做操作.然后就一直在找在调用un ...

  9. java+selenium打开浏览器实现后台静默运行

    简介:java selenium搭建无界面浏览器 PhantomJS是一个基于Webkit的"无界面"(headless)浏览器,它会把网站加载到内存并执行页面上的JavaScri ...

随机推荐

  1. [Win32::Console]Perl终端版生命游戏

    环境,WinXP/Win7  Perl 5.16 默认循环1000次,按ESC提前退出 use strict; use Term::ReadKey; use Win32::Console; use T ...

  2. 扩展卢卡斯定理(Exlucas)

    题目链接 戳我 前置知识 中国剩余定理(crt)或扩展中国剩余定理(excrt) 乘法逆元 组合数的基本运用 扩展欧几里得(exgcd) 说实话Lucas真的和这个没有什么太大的关系,但是Lucas还 ...

  3. kubernetes api文档

    http://kubernetes.kansea.com/docs/api-reference/v1/definitions/

  4. Educational Codeforces Round 62 (Rated for Div. 2)E(染色DP,构造,思维,组合数学)

    #include<bits/stdc++.h>using namespace std;const long long mod=998244353;long long f[200007][2 ...

  5. P1129 [ZJOI2007]矩阵游戏(二分图,网络流)

    传送门 这推导过程真的有点可怕的说……完全想不出来…… 最终状态是$(1,1),(2,2),(3,3)...(n,n)$都有一个黑点 我们可以理解为每一个行和列都形成了一个匹配 换句话说,只要$n$行 ...

  6. 【AOP】基于@Aspect的AOP配置

    基于spring cloud的aop配置 1,启动类MemberAppliaction增加注解 @Import({SwaggerConfiguraion.class, WebMvcAutoConfig ...

  7. python3入门之列表和元组

    获得更多资料欢迎进入我的网站或者 csdn或者博客园 前面一张主要学习了Python的安装,以及第一个程序helloword的编写,以及简单的输入和输出函数,这章主要介绍序列,列表,元组 序列  这章 ...

  8. JDBC解决中文乱码

    本文转载自https://www.liyongzhen.com/jdbc/jdbc-character 在使用JDBC开发的过程中,通常会遇到中文保存到数据库乱码的问题. 这个问题的产生有3个方面: ...

  9. 1.2、Logistics Regression算法实践

     1.1.Logistics Regression算法实践 有了上篇博客的理论准备后,接下来,我们用以及完成的函数,构建Logistics Regression分类器.我们利用线性可分的数据作为训练样 ...

  10. celery实现异步任务

    celery==3.1.25 rabbitmq开启服务 tasks.py代码如下: from celery import Celery broker = 'amqp://guest:guest@loc ...