Selenium怎样驱动Firefox浏览器:
首先打开Selenium的官网,
在地址栏输入http://www.seleniumhq.org/
这就是需要下载的东西:
下载到本地并解压,
把geckodriver-v0.18.0-win64里面的geckodriver.exe驱动添加到工程里面,
把selenium-java-3.4.0文件夹里面所有的.jar包添加到工程里面,
selenium-server-standalone-3.4.0.jar在做分布式测试时需要启动,
暂时不用管。
如果你是用Maven来构建的话,
就不用去Selenium官网下载.jar包,
只需要以下几行:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId>
<version>3.4.0</version>
</dependency>
版本号可以随便修改,
官网上最新的是3.5.3;
如果你用Gradle来构建的话,
只需要一行:
compile 'org.seleniumhq.selenium:selenium-firefox-driver:3.5.3'
好了,引入第三方依赖的准备工作都完成了,让我们开始写代码:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.util.concurrent.TimeUnit;
public class FirefoxBrowser {
public static void main(String[] args) {
WebDriver driver; //声明WebDriver
System.setProperty("webdriver.firefox.marionette", "C:\\Program Files\\Mozilla Firefox\\firefox.exe");
//指定Firefox浏览器的路径
String Url = "https://www.baidu.com"; //百度的地址
driver =new FirefoxDriver(); //new一个FirefoxDriver()
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //设置隐式等待10秒钟
driver.get(Url); //打开百度首页
driver.manage().window().maximize(); //把浏览器窗口最大化
try {
Thread.sleep(3000); //让线程等待3秒钟
} catch (InterruptedException e) {
e.printStackTrace();
}
driver.quit(); //退出driver
}
}
好了,让我们来跑一把:
成功的启动了Firefox浏览器,
并且打开了百度首页;
这里需要注意的是Firefox的版本不能是官网上最新的,
因为Firefox迭代的太频繁了,
我用的是46.09;
浏览器的版本一定要和驱动对应,
否则会出现启动了浏览器却无法打开网站的异常情况!
这里有一个历史版本的地址:
http://ftp.mozilla.org/pub/firefox/releases/
然后需要注意的是,
本次使用的是默认的浏览器驱动firefox.exe:
System.setProperty("webdriver.firefox.marionette", "C:\\Program Files\\Mozilla Firefox\\firefox.exe");
也可以使用在官网上下载的驱动geckodriver.exe,
采用相对路径:
System.setProperty("webdriver.firefox.marionette", "src/main/resources/geckodriver.exe");