Junit Test With Selenium Driver

Junits 和 Selenium

Junits 处理的是unit level 的测试;Selenium 处理的是 functional leve 的测试。虽然它们是完全不同,但仍然可以用Junit 来写 Selenium 测试。

一个完整的例子

import java.util.concurrent.TimeUnit;
 
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
 
public class SeleniumTest {
    private static FirefoxDriver driver;
    WebElement element;
 
    @BeforeClass
    public static void openBrowser(){
        driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    } 
 
    @Test
    public void valid_UserCredential(){
        System.out.println("Starting test " + new Object(){}.getClass().getEnclosingMethod().getName());
        driver.get("http://www.store.demoqa.com");
        driver.findElement(By.xpath(".//*[@id=‘account‘]/a")).click();
        driver.findElement(By.id("log")).sendKeys("testuser_3");
        driver.findElement(By.id("pwd")).sendKeys("[email protected]");
        driver.findElement(By.id("login")).click();
        try{
            element = driver.findElement (By.xpath(".//*[@id=‘account_logout‘]/a"));
        }catch (Exception e){
        }
        
        Assert.assertNotNull(element);
        System.out.println("Ending test " + new Object(){}.getClass().getEnclosingMethod().getName());
    }
 
    @Test
    public void inValid_UserCredential()
    {
        System.out.println("Starting test " + new Object(){}.getClass().getEnclosingMethod().getName());
        driver.get("http://www.store.demoqa.com");
	driver.findElement(By.xpath(".//*[@id=‘account‘]/a")).click();
	driver.findElement(By.id("log")).sendKeys("testuser");
	driver.findElement(By.id("pwd")).sendKeys("[email protected]");
	driver.findElement(By.id("login")).click();
	try{
	    element = driver.findElement (By.xpath(".//*[@id=‘account_logout‘]/a"));
	}catch (Exception e){
	}
        Assert.assertNotNull(element);
        System.out.println("Ending test " + new Object(){}.getClass().getEnclosingMethod().getName());
    }
 
    @AfterClass
    public static void closeBrowser(){
        driver.quit();
    }
}

关于BeforeClass 注解

    @BeforeClass
    public static void openBrowser()
    {
        driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    }

@BeforeClass,告诉Junit 下面的代码要在所有的test 开始跑之前提前运行。通过这个openBrowser ,相当于打开了一个浏览器。

关于inValid_UserCredential 方法

这只是一个login 功能。相对特殊的是一个 try catch 块和一个assert 判断。只有失败的时候,assert 语句才会起作用。

关于@AfterClass 注解

该注解时告诉Junit 注解,在所有test都跑完后,执行这个方法。这里是关闭浏览器驱动。

待继续补充......

参考了:http://www.toolsqa.com/java/junit-framework/junit-test-selenium-webdriver/

时间: 2024-12-20 01:06:07

Junit Test With Selenium Driver的相关文章

python3+selenium 3.13 + geckodriver 21.0,提示ConnectionResetError,切换会较低版本的driver即可

学习selenium时,如果sleep时间大于等于5秒,就会提示ConnectionResetError: [Errno 54] Connection reset by peer.换成chrome浏览器,可以正常运行. #demo.py from selenium import webdriver from time import sleep, ctime #chrome #driver = webdriver.Chrome(executable_path='//Users/csj/Deskto

selenium 代理 Cookies 截图 等待 调用JS

改变用户代理 读取Cookies 调用Java Script Webdriver截图 页面等待 1. 改变用户代理 [java] view plain copy import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver;

Selenium 高级应用

对于这一段还蛮有感慨的,只想说,代码还是需要自己去敲的. 1. 改变用户代理 [java] view plaincopy import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.s

Selenium开始

最早接触的selenium是 selenium IDE,当时是为了准备论文.为了用IDE还下载了Firefox浏览器.后来接触过两个项目都需要selenium,一个采用selenium webdirver+junit4 +java,另外一个是采用 robot+selenium2library .总体感觉就是开源.简单.使用范围广.是网页测试必备单品. 关于selenium的好的学习资料: 官方User Guide:  http://seleniumhq.org/docs/ 官方API:  htt

selenium + java + testNG 自动化环境搭建

kSelenium终极自动化测试环境搭建(一)Selenium+Eclipse+Junit+TestNG 第一步 安装JDK JDk1.7. 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 一路猛击'下一步',OK.安装完成后配置环境变量: JAVA_HOME = E:\Java\Java\jdk1.7.0_15 PATH = %JAVA_HOME%\bin CLAS

Selenium终极自动化测试环境搭建(二)Selenium+Eclipse+Python

Selenium终极自动化测试环境搭建(二)Selenium+Eclipse+Python 前面举例了Selenium+Eclipse+Junit+TestNG自动化测试环境的搭建,在前一篇的基础上,下面再举例Selenium+Eclipse+Python测试环境搭建. 第一步:安装Python 根据下面的地址,直接一键安装,全部默认方式. 下载地址:http://www.python.org/ftp/python/2.7.5/python-2.7.5.msi 安装到C:\Python27,设置

python selenium webderiver 遇到的问题

from selenium import webdriver driver = webdriver.Firefox(executable_path = "C:/Insert/Firefox/geckodriver.exe")driver.get("http://www.baidu.com")driver.maximize_window() driver.find_element_by_id("kw").send_keys("seleni

Java Selenium封装--RemoteWebDriver

1 package com.selenium.driver; 2 import java.io.File; 3 import java.io.IOException; 4 import java.net.URL; 5 import java.util.HashMap; 6 import java.util.Map; 7 import java.util.Set; 8 import java.util.regex.Matcher; 9 import java.util.regex.Pattern;

[小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建

在我看来一个自动化测试平台的构建,是一种很好的了解开发语言,单元测试框架,自动化测试驱动,设计模式等等等的途径.因此,在下选择了自动化测试的这个话题来和大家分享一下本人关于软件开发和自动化测试的认识.刚刚开通了博客,就从最基础的开始吧,算是写给初学者的编程手记,也算是给对自动化完全不了解的小伙伴开个头.时间允许的话会坚持更新下去... ... 后续的文章计划会谈到一些企业级自动化测试平台的构建(但愿有时间完成哈~~). 关于自动化测试的框架,网上有很多相关的对比,在这里我我就不评论和对比了.本人