很多没有语言基础小伙伴学了一点selenium,会写“打开浏览器->输入搜索内容->点击百度一下”这种简单用例后就不知道怎么进阶了,下面以一个实际的例子介绍selenium怎么一步步进阶
环境搭建
安装eclipse或其他IDE
安装JDK,并配置系统变量(不会的百度)
创建Java项目,导入selenium的jar包
两个最基本用例
为了保护公司隐私,已改动url,所以该例子不能运行,参考代码即可
1、导入客户用例
package com.kdzwy.cases1;
import java.text.SimpleDateFormat;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.testng.Assert;
/*
*包名:com.kdzwy.cases
*作者:Adien_cui
*时间:2017-5-17 下午5:06:42
*描述:导入客户用例
**/
public class ImportCustomerCase {
public static void main(String[] args) throws Exception{
//设置chrome驱动器的地址
System.setProperty("webdriver.chrome.driver", "resource/chromedriver.exe");
ChromeDriver driver = new ChromeDriver();
//识别对象时的超时时间。过了这个时间如果对象还没找到的话就会抛出NoSuchElement 异常
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//浏览器窗口最大化
driver.manage().window().maximize();
//输入访问地址
driver.get("http://guanjia/zwy/entrance.html");
//通过id定位用户名输入框
WebElement usernameEle = driver.findElement(By.id("log-account"));
//调用WebElement的clear()方法,清空用户名输入框的数据
usernameEle.clear();
//调用WebElement的sendKeys()方法,输入用户名
usernameEle.sendKeys("13152640586");
//通过css定位密码输入框
driver.findElement(By.cssSelector("#log-pwd")).sendKeys("123456@");
driver.findElement(By.id("sub-btn")).click();
//线程停1s,等待页面加载
Thread.sleep(1000);
//设置导入客户名称为:AutoTest加上当前时间,从而使每次导入的客户名不相同
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm");
String currentTime = sdf.format(new java.util.Date());
String customerName = "AutoTest"+currentTime;
//通过xpath定位代账服务标签
driver.findElement(By.xpath("//span[text()='代账服务']")).click();
//点击下拉选项
driver.findElement(By.xpath("//*[@id='control-con']//div[@class='el-dropdown']")).click();
Thread.sleep(1500);
//获得“导入客户”元素,该元素直接点击会报“element not visible”,所以用js来执行点击事件
WebElement importBtn = driver.findElement(By.xpath("//ul[@class='el-dropdown-menu']//li[text()='导入客户']"));
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click()", importBtn);
//获取输入用户名文本框,并输入客户名
WebElement cusName = driver.findElementByXPath("(//*[@id='con-wraper']//form//input)[1]");
cusName.sendKeys(customerName);
//点击确定按钮
driver.findElement(By.xpath("//*[@id='con-wraper']/div[14]/div/div[3]/span/button[2]")).click();
//获取新增客户成功的提示语
String successTip = driver.findElement(By.xpath("//div[@class='el-message__group']//p[text()='新增客户成功']")).getText();
//验证提示语是否正确
Assert.assertEquals(successTip, "新增客户成功");
System.out.println("导入的客户名:"+customerName);
Thread.sleep(1000);
//关闭浏览器
driver.quit()