前边宏哥已经将环境搭建好了,今天就在Java项目搭建环境中简单地实践一下: 启动三大浏览器。按市场份额来说,全球前三大浏览器是:IE.Firefox.Chrome。因此宏哥这里主要介绍一下如何启动这三大浏览器即可,其他浏览器类似的方法,照猫画虎就可以了。
2.1准备工作
创建一个Selenium的Java项目,用来练习,具体步骤如下:
1.打开Eclipse,创建一个名称为Bjhg_Selenium的Java 项目,如下图所示:
2.在Bjhg_Selenium项目下,新建一个文件夹Tools,把Selenium相关包放到这个文件夹下,如下图所示:
3.右键项目,选择Build Path,然后选择Confige Build Path...,弹出框点击Libraries,如下图所示:
4.这里点击Add JARs...,弹出框,选择当前项目下tools这个文件夹里面的selenium-server-standalone-3.4.0.jar,点击OK,效果如下图所示:
准备工作就介绍到这里,下边介绍如何启动三大浏览器。
3.1chrome和chromedriver版本下载地址及对应关系
【国外】chromedriver所有版本下载地址:http://chromedriver.storage.googleapis.com/index.html
【国内】chromedriver所有版本下载地址:https://npm.taobao.org/mirrors/chromedriver
【国内】chrome所有版本下载地址:Google Chrome 64bit Windows版_chrome浏览器,chrome插件,谷歌浏览器下载,谈笑有鸿儒
【国外】浏览器版本和驱动版本对应关系查看网址:ChromeDriver - WebDriver for Chrome - Downloads
注意:一个大的chromedriver版本里面可能包含的有多个小版本,如果下载的Chromedriver版本和当前使用的chrome浏览器版本不匹配则可以换其他的试试。比如:chromedriver 79版里面有v79.0.3945.16 v79.0.3945.36
3.2驱动Chrome
1.在lessons包下创建类LaunchChrome.java,如下图所示:
2.大致思路:打开Chrome浏览器,访问百度网址,获取网址的title,然后再关闭Chrome浏览器。根据思路进行代码设计,如下图所示:
3.参考代码,如下:
package lessons;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
/**
* @author 北京-宏哥
*
* 2021年6月17日
*/
public class LaunchChrome {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
//初始化一个chrome浏览器实例,实例名称叫driver
WebDriver driver = new ChromeDriver();
//最大化窗口
driver.manage().window().maximize();
//设置隐性等待时间
driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);
// get()打开一个站点
driver.get("https://www.baidu.com");
//getTitle()获取当前页面title的值
System.out.println("当前打开页面的标题是: "+ driver.getTitle());
//关闭并退出浏览器
driver.quit();
}
}
4.电脑端的浏览器,如下小视频所示:
5.运行代码,右键Run AS->java Application,控制台输出,如下图所示:
4.1Firefox和驱动下载地址
selenium2.X最高支持的Firefox版本为46,使用selenium2.X的话不需要下载火狐驱动,只需要配置火狐的启动路径即可。
Selenium3.0开始需下载geckodriver,想使用geckodriver ,Firefox浏览器必须是48或者更高版本。具体的浏览器和浏览器驱动之间的对应关系可在geckodriver下载网站中的版本说明中查看。
所有火狐浏览器版本下载地址:Directory Listing: /pub/firefox/releases/
所有火狐驱动geckodriver版本下载地址:Releases · mozilla/geckodriver · GitHub
4.2驱动Firefox
具体过程和Chrome的差不多,宏哥就不做赘述,将代码贴出来以供参考。
1.参考代码,如下:
package lessons;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
/**
* @author 北京-宏哥
*
* 2021年6月17日
*/
public class LuanchFirefox {
public static void main(String[] args) {
//System.setProperty("webdriver.firefox.marionette", ".\\Tools\\geckodriver.exe");
System.setProperty("webdriver.gecko.driver", ".\\Tools\\geckodriver.exe");
//初始化一个火狐浏览器实例,实例名称叫driver
WebDriver driver = new FirefoxDriver();
//最大化窗口
driver.manage().window().maximize();
//设置隐性等待时间
driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);
// get()打开一个站点
driver.get("https://www.baidu.com");
//getTitle()获取当前页面title的值
System.out.println("当前打开页面的标题是: "+ driver.getTitle());
//关闭并退出浏览器
driver.quit();
}
}
5.1IE浏览器驱动下载地址
本人使用的IE和IEDriverServer:
IE浏览器版本:11 IEDriverServer版本:Win32_3.0.0
IE浏览器所有驱动版本下载地址:http://selenium-release.storage.googleapis.com/index.html
5.2驱动IE
具体过程和Chrome的差不多,宏哥就不做赘述,将代码贴出来以供参考。
1.参考代码,如下:
package lessons;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
/**
* @author 北京-宏哥
*
* 2021年6月17日
*/
public class LaunchIE {
public static void main(String[] args) {
System.setProperty("webdriver.ie.driver", ".\\Tools\\IEDriverServer.exe");
//初始化一个IE浏览器实例,实例名称叫driver
WebDriver driver = new InternetExplorerDriver();
//最大化窗口
driver.manage().window().maximize();
//设置隐性等待时间
driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);
// get()打开一个站点
driver.get("https://www.baidu.com");
//getTitle()获取当前页面title的值
System.out.println("当前打开页面的标题是: "+ driver.getTitle());
//关闭并退出浏览器
driver.quit();
}
}
宏哥因为之前做过python和selenium,所以没有出现浏览器版本和驱动版本匹配的问题,新手一定要注意这个问题。
好了,今天关于三大浏览器的驱动宏哥就分享到这里,感谢你耐心的阅读。