Selenium简单录制回放导出java脚本

简单访问百度,输入selenium 执行搜索这一用例。

第一步打开selenium Ide 输入地址https://www.baidu.com/并点击红色录制按钮

第二步在火狐浏览器访问地址https://www.baidu.com/ 并输入关键字selenium 点击搜索按钮显示内容 点击红色按钮停止录制。

第三步点击绿色按钮回放当前脚本并回放成功:Selenium简单录制回放导出java脚本_第1张图片

导出基于 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():固定休眠时间设置,JavaThread类里提供了休眠方法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;
    }
  }
}


导出java脚本基于selenium rc的
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执行这两个脚本看区别











你可能感兴趣的:(自动化,selenium)