简单访问百度,输入selenium 执行搜索这一用例。
第一步打开selenium Ide 输入地址https://www.baidu.com/并点击红色录制按钮
第二步在火狐浏览器访问地址https://www.baidu.com/ 并输入关键字selenium 点击搜索按钮显示内容 点击红色按钮停止录制。
导出基于 webdriver的 selenium java脚本了解:
//项目包
package com.example.tests;
//运行该脚本用到的包
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.testng.annotations.*;
import static org.testng.Assert.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
//测试类
public class TestCase {
//驱动类
private WebDriver driver;
//录制路径
private String baseUrl;
//是否接受下次弹出默认为true
private boolean acceptNextAlert = true;
//字符串拼接流
private StringBuffer verificationErrors = new StringBuffer();
//testng注解
@BeforeClass(alwaysRun = true)
public void setUp() throws Exception {
//创建火狐驱动
driver = new FirefoxDriver();
baseUrl = "https://www.baidu.com/";
/**
为了提高脚本的稳定性,我们需要在脚本中增加等待时间
第一种:强制等待
Thread.sleep():固定休眠时间设置,Java的Thread类里提供了休眠方法sleep,导入包后就能使用
sleep()方法以毫秒为单位
Thread.sleep(3000);
----执行到此时不管什么就固定的等待三秒之后再接着执行后面的操作
第二种:隐式等待方法
implicitlyWait()方法比sleep()方法智能,sleep()方法只能在一个固定的时间等待,而implicitlyWait()可以在一个时间范围内等待,称为隐式等待
隐式等待采用全部设置,也就是说,你所有的findElement方法都会隐式等待10s
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
----此方法针对执行脚本的所有对象,等待10秒
第三种:显示等待方法
WebDriverWait()
就是明确的要等到某个元素的出现或者是某个元素的可点击等条件,等不到,就一直等,除非在规定的时间之内都没找到,那么就跳出Exception
1、每500毫秒扫描界面是否出现元素
2、针对单一元素
3、可以设置超时时间
WebDriverWait wait=new WebDriverWait(driver, 10);
//设置等待时间为隐式等待
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testCase() throws Exception {
driver.get(baseUrl + "/");
driver.findElement(By.id("kw")).click();
driver.findElement(By.id("kw")).clear();
driver.findElement(By.id("kw")).sendKeys("selenium");
driver.findElement(By.id("su")).click();
}
@AfterClass(alwaysRun = true)
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}
private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}
package com.example.tests;
import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import java.util.regex.Pattern;
public class TestCase {
private Selenium selenium;
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "https://www.baidu.com/");
selenium.start();
}
@Test
public void testCase() throws Exception {
selenium.open("/");
selenium.click("id=kw");
selenium.type("id=kw", "selenium");
selenium.click("id=su");
}
@After
public void tearDown() throws Exception {
selenium.stop();
}
}
具体可以看看webdriver 与rc的区别:http://www.51testing.com/html/87/300987-829950.html
下一篇学习导入eclipse执行这两个脚本看区别