前提条件:
已下载安装JDK
已下载安装Eclipse
已在Eclipse中引入了WebDriver的相关jar包
第一个脚本实现场景:
1. 启动火狐浏览器,并将窗口最大化
2. 打开百度首页
3. 在搜索框中输入内容:自动化测试
4. 点击“百度一下”进行搜索
5. 关闭火狐浏览器
实现第一个脚本
步骤1:下载火狐驱动geckodriver
下载:从这里下载火狐驱动
注意:windows系统下载的是.zip文件,注意区分32位和64位,主要要和自己安装的火狐浏览器一致,火狐安装的是32位的驱动也用32位的,火狐安装的是64位的驱动也最好用64位的。
下载后解压此zip文件,会得到一个geckodriver.exe文件,把这个exe文件放到一个不要太深的路径下,比如D:\BrowserDriver下,并记住这个路径,此路径一会儿会在脚本中使用。
步骤2:在Eclipse中的普通java项目中创建一个类Class,把示例中的脚本复制过去
第一个WebDriver脚本示例:
package package1;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class OpenBaidu {
public static void main(String args[]) throws InterruptedException {
//指定火狐驱动的地址
System.setProperty("webdriver.gecko.driver","D:\\BrowserDriver\\geckodriver.exe");
//实例化一个WebDriver的对象,此时会启动火狐浏览器
WebDriver driver = new FirefoxDriver();
//最大化浏览器窗口
driver.manage().window().maximize();
//打开百度首页
driver.get("https://www.baidu.com/");
//在搜索框中输入查询内容:Yoyo测试精品课程
driver.findElement(By.id("kw")).sendKeys("自动化测试");
//强制等待3秒
Thread.sleep(3000);
//点击“百度一下” 执行搜索
driver.findElement(By.id("su")).click();
//强制等待3秒
Thread.sleep(3000);
//关闭火狐浏览器
driver.quit();
}
}
如果WebDriver的jar包未正确引入到项目中的话,上面的脚本中应该就会看到很多红色的错误,红色的错误是必须要修正的。
步骤3:运行此脚本
在Eclipse中选中此java文件,点击右键,在右键中选择Run As--> Java Application.
就会看到启动了火狐浏览器,打开了百度并执行了设定的搜索,最后关闭了火狐浏览器。
第一个WebDriver脚本解释:
1. 引入webdriver相关的类
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
引入这些selenium相关类的目的就是为了使用这些类中已经定义好的一些自动化测试常用的操作方法,比如WebDriver类可以实例化WebDriver的对象,FirefoxDriver类可以指定实例化的WebDriver对象具体启动哪个浏览器,这些类中就包含了定位网页元素的findElement()等方法。
我们在搭建环境时,在项目中引入的WebDriver相关的jar包,里面就包含了这些类,把他们通过import关键字引入到具体的脚本中后,我们就可以直接使用这些类中已经定义好的常用操作方法而不用自己去重新编写。
2. 实例化WebDriver的对象
WebDriver driver = new FirefoxDriver();
对象的名字一般习惯用driver,其实也可以叫其它的名字。
火狐需要为默认安装,否则要再加代码指定火狐的安装地址。
实例化对象的过程具体就是启动了火狐浏览器
3. 使用WebDriver类中的方法操作网页
//最大化浏览器窗口
driver.manage().window().maximize();
//打开百度首页
driver.get("https://www.baidu.com/");
//在搜索框中输入查询内容:自动化测试
driver.findElement(By.id("kw")).sendKeys("自动化测试");
上面的最大化窗口的方法,打开网页的get()方法,定位网页元素的findElement()方法,都是WebDriver类中包含的方法,所以使用实例化的对象driver直接调用就可以了。
这其实也是java中调用其他类中方法的一个用法,在java中对于非static类型的方法,在调用时,需要先实例化一个对象,通过对象调用。
4. 设定一个强制等待时间
//强制等待3秒
Thread.sleep(3000);
它的单位是毫秒,3000毫秒=3秒
设置强制等待时,需要在main函数中抛异常throws InterruptedException
5. 关闭浏览器
//关闭火狐浏览器
driver.quit();
关闭浏览器的quilt()方法,也是在WebDriver类中定义的方法,所以也是使用对象driver直接调用即可。
********************************************************************************************************
近期我会在博客中系统的更新一些关于Selenium的文章,也请大家多多关注下我的视频课程:
入门:基于Java的Selenium3自动化测试完整教程
高级:Selenium Java高级架构课程
*********************************************************************************************************
阅读更多精彩文章,请大家关注我的测试公众号:火烈鸟测试