自动化测试Selenium Webdriver (JAVA)学习小结

自动化测试--Selenium学习小结

一、自动化测试的概念及意义:

1.什么是自动化测试:

一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。

2.意义:

让测试更有效率,利用更多的空余时间,减少人力资源。

二、selenium工具

我用的是java语言,所以接下来的例子和方法都是基于java的。

1.环境配置

(1)Jdk的配置;

我用的是1.7的jdk,配置方法都一样,新建一个JAVA_HOME,把你装好的jdk的路径复制过去。

在新建一个CLASSPATH,变量值填写:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

然后找到path,没有就新建一个,在变量值中加上:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

(像下图如果变量值中有内容,前面需加上“;”用来隔开)

最后检验jdk是否安装正确,输入win+R,打开cmd,输入java -version,得到下图则说明安装成功:

(2)Eclipse或者myeclipse工具;

下载三个文件:selenium-java-2.48.2.jar

selenium-java-2.48.2-srcs.jar

Selenium-server-standalone-2.46.0.jar

这三个文件要放到项目的lib中

2.浏览器:

支持ie,firefox,google。

二、小试身手

1.打开浏览器:

Firefox浏览器(我使用的是firefox,后面的例子也是使用的firefox,出错少,方便使用)

A.如果你的火狐浏览器默认安装的:

B.自定义安装的,需要指定路径:

 
   

Google浏览器(需要下载一个Google的driverserver)

Ie浏览器(需要下载一个ie的driverserver)

 
   

2.打开网址(上下文的wd是我自己的命名,可以自己更改)

 
   

3.完整的例子:

 
   

三、更具体的运用

1.查找页面元素

通过id,name,text查询元素

wd.findElement(By.id(""));

wd.findElement(By.name(""));

wd.findElement(By.linkText(""));

一般没有特定要求的页面元素很多都没有id和name这时候我们就要用到一个强大的查询语句byxpath

例如我们要定位到上图的图片,也就是欧曼的图标,我们用xpath定位:

wd.findElement(By.xpath("//img[contains(@src,‘themes/auman/images/logo.png‘)]"));

2.页面操作

模拟鼠标点击:

Wd.click();

关闭网页:

Wd.close();

清空输入框中的内容:

Wd.clear();

在输入框中输入内容:

Wd.sendKeys(“”);

获取输入框中的内容:

Wd.getText();

选择下拉框中的元素:

Select select = new Select(wd.findElement(By.id("select")));

切换到某个frame:

driver.switchTo().frame("");

从一个frame切换到另一个frame:

driver.switchTo().frame("");

切换到某个window:

driver.switchTo().window("windowName");

返回父iframe:(一般在跳转frame之前都写上这个语句)

driver.switchTo().defaultContent();

刷新页面:

wd.navigate().refresh();

页面前进后退:

wd.navigate().forward();

wd.navigate().back();

悬停鼠标:

悬停鼠标可能你觉得为什么需要这个操作,我已欧曼为例子,像这一栏每个车型下都有多个元素,想要找到元素,这个时候就需要模拟鼠标悬停使得隐藏js的让我们可以找到:

悬停前:

悬停后:

实例:

4.设置等待时间:

强行停止:(1000代表1s)

Thread.Sleep(1000);

全局等待:(单位:s)

wd.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

5.得到当前页面的url:

wd.getCurrentUrl();

6.判断页面是否跳转正确

assertEquals("http://mall.aumantruck.com/goods_list/2915/66/add_time/desc/page-1.html",wd.getCurrentUrl());

有各种验证方法,但是要是能够证明的特征元素才行,避免出现误差!可以验证url是否是你预期的,或者有些页面元素是你预期会有的。

时间: 2024-10-19 00:53:29

自动化测试Selenium Webdriver (JAVA)学习小结的相关文章

[selenium webdriver Java]常用api

1. 获取元素文本 WebElement类的getText()方法返回元素的innerText属性.所以元素里如果有子节点一样也会被返回出来.如下所示 1 public class GetText { 2 @Test 3 public void testGetText(){ 4 //启动driver,打开被测页面 5 System.setProperty("webdriver.chrome.driver", "chromedriver.exe"); 6 WebDri

[selenium webdriver Java]元素定位——findElement/findElements

策略 语法 语法 描述 By id driver.findElement(By.id()) driver.findElements(By.id()) 通过id属性定位元素 By name driver.findElement(By.name()) driver.findElements(By.name()) 通过name属性定位元素 By class name driver.findElement(By.className()) driver.findElements(By.className(

[selenium webdriver Java]隐式的等待同步

Selenium WebDriver提供了隐式等待来同步测试.当使用了隐式等待执行测试的时候,如果WebDriver没有在DOM中找到元素,将继续等待,超出设定时间后,抛出找不到元素异常 即,当元素没有立即出现的时候,隐式等待将等待一段时间后,再查找DOM.默认时间是0. 一旦设置了隐式等待,它将存在在整个webdriver对象实例的生命周期中,隐式等待会让一个正常响应的应用的测试变慢,会在寻找每个元素时进行等待,这样增加了整个测试执行的时间. 应该避免或减少使用隐式等待 //等待60s dri

Selenium WebDriver java 简单实例

开发环境 JDK 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html Eclipse: 下载地址:http://www.eclipse.org/downloads/ Selenium jar包 (这里用的是:selenium-Java-2.45.0.zip ,selenium-server-standalone-2.45.0.jar) 下载地址:http://code.google.com/p/sele

[selenium webdriver Java]显示的等待同步

显示等待可以在执行下一次操作时,自定义等待条件 显示的等待只需要执行在需要同步的地方而不影响脚本的其他地方 Selenium WebDriver提供了WebDriverWait和ExpectedCondition类来执行显示等待 ExpectedCondition类提供了一系列预定义好的条件来等待.下面是一些常用的条件 预定义条件 方法名 元素可见可点击 elementToBeClickable(By locator) 元素可被选中 elementToBeSelected(WebElement

[selenium webdriver Java]使用自定义条件同步测试

Selenium WebDriver可以结合ExpectedCondition类来定义自己期望的条件 创建一个新的ExpectedCondition接口,必须实现apply方法 等待元素出现 1 public void testWithImplicitWait(){ 2 System.setProperty("webdriver.chrome.driver", "chromedriver.exe"); 3 WebDriver driver = new ChromeD

[selenium webdriver Java]检查元素是否存在

Selenium WebDriver没有实现Selenium RC的isElementPresent()方法来检查页面上的元素是否存在. 在WebDriver中封装一个类似的方法,如下: 1 public boolean isElementPresent(WebDriver driver, By by){ 2 try{ 3 driver.findElement(by); 4 return ture; 5 }catch(Exception e){ 6 return false; 7 } 8 }

[selenium webdriver Java]处理弹出窗口

Selenium WebDriver测试弹出窗口,包括识别弹出窗口,将driver转到新的窗口,在新的串钩中执行而是步骤,然后再转换到最初的窗口. 通过名称(name)识别和处理: Selenium WebDriver允许我们通过name属性或窗口的句柄来识别窗口,然后通过WebDriver.switchTo().window()方法在不同的窗口之间进行切换. window name属性的定义 name 属性可设置或得到窗口的名称,其值为字符串.语法如下: 1 window.name = [na

[转]java selenium webdriver实战 应用小结

原文链接:http://www.cnblogs.com/itliucheng/p/5578788.html 部分api 1.访问网站 driver.get("http://www.baidu.com"); 或者 driver.navigate().to("http://www.baidu.com"); 2.操作浏览器窗口 //声明一个point对象,两个150表示浏览器的位置相对于屏幕的左上角(0,0)的横坐标距离和纵坐标距离 Point point = new P