51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2011|回复: 0
打印 上一主题 下一主题

第一个WebDriver脚本

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-4-4 15:30:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前提条件:

已下载安装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脚本示例:

  1. package package1;

  2. import org.openqa.selenium.By;
  3. import org.openqa.selenium.WebDriver;
  4. import org.openqa.selenium.firefox.FirefoxDriver;

  5. public class OpenBaidu {
  6.        
  7.         public static void main(String args[]) throws InterruptedException {
  8.                
  9.                 //指定火狐驱动的地址
  10.                 System.setProperty("webdriver.gecko.driver","D:\\BrowserDriver\\geckodriver.exe");
  11.                
  12.                 //实例化一个WebDriver的对象,此时会启动火狐浏览器
  13.                 WebDriver driver = new FirefoxDriver();
  14.                
  15.                 //最大化浏览器窗口
  16.                 driver.manage().window().maximize();
  17.                
  18.                 //打开百度首页
  19.                 driver.get("https://www.baidu.com/");
  20.                
  21.                 //在搜索框中输入查询内容:Yoyo测试精品课程
  22.                 driver.findElement(By.id("kw")).sendKeys("自动化测试");
  23.                
  24.                 //强制等待3秒
  25.                 Thread.sleep(3000);
  26.                
  27.                 //点击“百度一下” 执行搜索
  28.                 driver.findElement(By.id("su")).click();
  29.                
  30.                 //强制等待3秒
  31.                 Thread.sleep(3000);
  32.                
  33.                 //关闭火狐浏览器
  34.                 driver.quit();
  35.                
  36.         }

  37. }
复制代码

如果WebDriver的jar包未正确引入到项目中的话,上面的脚本中应该就会看到很多红色的错误,红色的错误是必须要修正的。

步骤3:运行此脚本

在Eclipse中选中此java文件,点击右键,在右键中选择Run As--> Java Application.

就会看到启动了火狐浏览器,打开了百度并执行了设定的搜索,最后关闭了火狐浏览器。

第一个WebDriver脚本解释:


1. 引入webdriver相关的类

  1. import org.openqa.selenium.By;
  2. import org.openqa.selenium.WebDriver;
  3. import org.openqa.selenium.firefox.FirefoxDriver;
复制代码

引入这些selenium相关类的目的就是为了使用这些类中已经定义好的一些自动化测试常用的操作方法,比如WebDriver类可以实例化WebDriver的对象,FirefoxDriver类可以指定实例化的WebDriver对象具体启动哪个浏览器,这些类中就包含了定位网页元素的findElement()等方法。


我们在搭建环境时,在项目中引入的WebDriver相关的jar包,里面就包含了这些类,把他们通过import关键字引入到具体的脚本中后,我们就可以直接使用这些类中已经定义好的常用操作方法而不用自己去重新编写。


2. 实例化WebDriver的对象

  1. WebDriver driver = new FirefoxDriver();
复制代码

对象的名字一般习惯用driver,其实也可以叫其它的名字。

火狐需要为默认安装,否则要再加代码指定火狐的安装地址。

实例化对象的过程具体就是启动了火狐浏览器

3. 使用WebDriver类中的方法操作网页
  1. //最大化浏览器窗口
  2. driver.manage().window().maximize();
  3.                
  4. //打开百度首页
  5. driver.get("https://www.baidu.com/");
  6.                
  7. //在搜索框中输入查询内容:自动化测试
  8. driver.findElement(By.id("kw")).sendKeys("自动化测试");
复制代码


上面的最大化窗口的方法,打开网页的get()方法,定位网页元素的findElement()方法,都是WebDriver类中包含的方法,所以使用实例化的对象driver直接调用就可以了。

这其实也是java中调用其他类中方法的一个用法,在java中对于非static类型的方法,在调用时,需要先实例化一个对象,通过对象调用。

4. 设定一个强制等待时间

  1. //强制等待3秒
  2. Thread.sleep(3000);
复制代码

它的单位是毫秒,3000毫秒=3秒

设置强制等待时,需要在main函数中抛异常throws InterruptedException

5. 关闭浏览器
  1. //关闭火狐浏览器
  2. driver.quit();
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-25 12:04 , Processed in 0.067634 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表