一、Firefox安装
1. Firefox安装版本:
由于高版本的Firefox与seleniumIDE兼容性不是很好,建议Firefox安装版本为54.0.1 (32 位/64位),可以去官网地址下载对应Firefox版本并安装,安装之后设置Firefox为不更新:打开Firefox,选择"工具"->"选项"->"高级"->"更新":不检查更新(不推荐:存在安全风险)
二、 Firefox安装seleniumIDE
2. Firefox安装seleniumIDE插件,
打开Firefox,输入地址 https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/
点击"Add to Firefox",自动为Firefox添加插件,安装完seleniumIDE插件之后重新打开Firefox,选择"工具"查看seleniumIDE是否安装成功:
或者直接用快捷键Ctrl+Alt+S(s大小写均可以),出现seleniumIDE录制弹窗:
以上表示Firefox安装seleniumIDE成功。
三、 seleniumIDE录制脚本
例:打开http://www.baodu.com , 输入selenium ,点击"百度一下"
1. 打开firefox,并打开seleniumIDE录制窗口,录制过程中该窗口一直处于打开状态;
2. 在firefox中输入http://www.baodu.com , 输入selenium ,点击"百度一下":
3. 点右上角的"红色圆点"停止录制,然后可以录制回放:
4. 回放结果(回放过程中可以调慢回放速度,就可以看到会自动打开浏览器,输入selenium这个过程):
5. 将录制的结果转化为java代码,点"Options-Format"后,出现下图情况:
6. 针对5遇到的情况,解决办法:
选择"Options-Options",打开Selenium IDE Options窗口,勾选
7. 点确定之后,format格式就会出来:
8. 把刚录制的结果,转化为Junit4代码,选择
9. 转化后的结果:
代码:
package com.example.tests;
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
public class Untitled {
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "https://www.baidu.com/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testUntitled() 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();
}
@After
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;
}
}
}