- Selenium基本术语
- Selenium简介
- Selenium功能特性
- Selenium的局限性
- Selenium与QTP比较
- Selenium工具套件
- Selenium IDE
-
Selenium WebDriver
- Selenium WebDriver简介
- Selenium WebDriver架构
- Selenium WebDriver功能特性
- Selenium WebDriver Vs Selenium RC比较(差别)
- Selenium WebDriver安装
- Selenium WebDriver第一个测试案例
- Selenium WebDriver常用命令
- Selenium WebDriver在Chrome浏览器上运行测试
- Selenium WebDriver-在Firefox浏览器上运行测试
- Selenium WebDriver-在IE浏览器上运行测试
- Selenium WebDriver-定位策略
- Selenium WebDriver处理下拉列表
- Selenium WebDriver拖放处理
- Selenium WebDriver处理Alert
- Selenium WebDriver滚动网页
Selenium WebDriver第一个测试案例
在本节中,将学习如何创建第一个Selenium自动化测试脚本。
在此测试下,将自动执行以下测试操作:
- 调用Firefox浏览器。
- 打开网址: www.baidu.com
- 点击百度搜索文本框。
- 输入关键字 - “找一找教程网教程”
- 单击“搜索”按钮。
接下来将逐步创建测试用例,以便详细了解每个组件。
第1步 - 启动Eclipse IDE并打开在本教程的上一节(配置Selenium WebDriver)中创建的项目“Demo_Test” 。在“Demo_Test” 测试套件下的“FirstTestCase.java” 文件中编写第一个Selenium测试脚本。
注意:要在Selenium中调用浏览器,必须下载特定于该浏览器的可执行文件。 例如,Chrome浏览器使用名为
ChromeDriver.exe
的可执行文件实现WebDriver协议。 这些可执行文件在您的系统上启动服务器,而该服务器又负责在Selenium中运行测试脚本。
第2步 - 在浏览器中打开网址:
第3步 - 点击对应操作系统版本的“geckodriver”链接,并安您所使用使用的当前操作系统下载,在编写此文章时,所使用的时Win10 64位操作系统,所以下载:
geckodriver-v0.23.0-win64.zip 。下载的文件将采用压缩格式,将内容解压缩到一个方便的目录中。
第4步 - 需要为百度搜索文本框和搜索按钮等网络元素添加唯一标识,以便通过测试脚本自动执行这些标识。 这些唯一标识与一些命令/语法一起配置以形成定位器。 使定位器在Web应用程序的上下文中定位和标识特定的Web元素。
用于查找唯一标识元素的方法涉及检查HTML代码。
在Chrome浏览器中打开网址 : https://www.baidu.com 。右键单击百度搜索文本框,然后选择Inspect Element 。
它将启动一个窗口,其中包含测试盒开发中涉及的所有特定代码。选择id元素的值,即“kw”。
下面给出了在Selenium WebDriver中通过“id” 定位元素的Java语法。
driver.findElement(By.id (<element ID>));
以下是在测试脚本中查找百度搜索文本框的完整代码。
driver.findElement(By.id ("kw"));
现在,右键单击百度搜索按钮(百度一下)并选择Inspect Element ,如下图所示:
它将启动一个窗口,其中包含开发百度搜索按钮所涉及的所有特定代码 ,如下图所示:
选择id
元素的值,即“su” ,如下图所示:
下面给出了在Selenium WebDriver中通过“name”定位元素的Java语法。
driver.findElement(By.name (<element name>));
以下是在测试脚本中查找百度搜索按钮的完整代码。
// driver.findElement(By.name ("btnK")); 这里用不上。 driver.findElement(By.id ("su"));
第5步 - 接下来编写代码,为每个代码块写上注释,以便清楚地解释这些步骤。
package com.zyiz; import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxBinary; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.GeckoDriverService; public class FirstTestCase { public static void main(String[] args) { // declaration and instantiation of objects/variables System.setProperty("webdriver.gecko.driver", "D:\\software\\WebDriver\\geckodriver.exe"); System.setProperty("webdriver.firefox.bin", "D:\\Program Files\\Mozilla Firefox\\firefox.exe"); WebDriver driver = (WebDriver) new FirefoxDriver(); // Launch website // driver.navigate().to("http://www.baidu.com/"); driver.get("http://www.baidu.com/"); //driver.manage().window().maximize(); String titile = driver.getTitle(); System.out.println("title is => " + titile); // Click on the search text box and send value driver.findElement(By.id("kw")).sendKeys("找一找教程网教程"); // Click on the search button driver.findElement(By.id("su")).click(); try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //driver.quit(); } }
一些可能遇到的错误:
未设置时java.lang.IllegalStateException报错:
System.setProperty("webdriver.gecko.driver", "D:\\software\\geckodriver.exe"); //若无法打开Firefox浏览器,可设定Firefox浏览器的安装路径(未设置路径时path报错) System.setProperty("webdriver.firefox.bin", "D:\\software\\firefox、、firefox.exe");
Eclipse代码窗口如下所示:
第6步 - 右键单击Eclipse代码,然后选择:Run As -> Java Application 。
第7步 - 上述测试脚本将启动Firefox浏览器,并执行搜索。如下图所示 -
代码的说明
导入包/语句
在java中,import语句用于导入另一个包中存在的类。 简单来说,import
关键字用于将内置和用户定义的包导入java源文件。
org.openqa.selenium.WebDriver
- 引用实例化新Web浏览器所需的WebDriver接口。org.openqa.selenium.chrome.ChromeDriver
- 引用将Chrome专用驱动程序实例化到WebDriver类实例化的浏览器所需的ChromeDriver
类。
实例化对象和变量
通过以下方式实例化驱动程序对象:
WebDriver driver=new ChromeDriver();
启动网站
要启动新网站,在WebDriver中使用navigate().to()
方法。
driver.navigate().to("http://www.zyiz.net/"); // 或者 driver.get("http://www.baidu.com/");
单击元素
在WebDriver中,用户交互是通过使用Locators
来执行的,在本教程的后续会话中讨论。 目前,以下代码实例用于定位和解析特定Web元素中的值。
driver.findElement(By.id("su")).sendKeys("找一找教程网教程");