Selenium IDE的基本使用(循环、参数变量、导出脚本)

一、Selenium IDE的控件

在这里插入图片描述

1、这个是执行多个测试用例的控件,点击它能够执行当前所有的脚本

2、这个是执行单个测试用例的控件,点击它执行当前的脚本
在这里插入图片描述
3、这个是执行脚本的每一个步骤,配合使用debug
在这里插入图片描述
4、这个是调节脚本执行快慢的控件
在这里插入图片描述
5、Log:执行结果会以log日志的方式打印,且精确到每一个子步骤
Reference表示,此次脚本的执行,使用了哪些selenium命令

在这里插入图片描述

二、常用基本操作

1、脚本中添加注释,点击脚本右侧,选择insert new comment,会在上方出现空白行,在command处输入注释内容,命令和注释位置调整,只需要通过鼠标点击拖拽即可
在这里插入图片描述
2、设置断点,选择一条命令,鼠标右键选择Toggle Breakpoint
见上图
3、编辑脚本实现脚本循环操作
<1>先来了解一下脚本的基本属性
(1)command命令
在浏览器元素上执行的实际操作。 如果单击网页上的链接或按钮,则该命令为click,如果要输入,则该命令是type,点击右侧能下拉出所有能执行的命令
在这里插入图片描述
(2)target目标
定位辅助,当seleniumIDE录制脚本时,Target会生成针对当前元素的所有定位方式,可以单击target下拉选框选择元素定位方式
在这里插入图片描述
3、value值
测试时的实际输入参数。
<2>循环操作
在需要循环操作的脚本那一行上面添加三行command,即【insert new comment】,新增三个,
第一行申明一个变量,这里举例:index变量,具体下图所示
在这里插入图片描述
接下来的二、三行,下图所示添加的元素。第二行command,添加一个do,代表循环;第三行command,让变量index自增1
在这里插入图片描述
需要记住,添加了上方循环语句,需要在结尾加入repeat if,代表循环判断,否则do报错;target表示循环条件,这里写的变量首先进入循环是1,每次循环+1,需要注意的是这里的repeat if在下方,表示上面的index=10运行到这里才不执行,因此到第10次执行完了才停止执行,即下方页面跳转到10执行完了才结束,下图所示
在这里插入图片描述
<3>设置变量
(1)在需要设置变量的地方修改value值,其为变量,这里要用表达式形式${index}。
(2)并在上方添加新的command,新增的command,选择execute script;
(3)target填入js代码:return ${index}+1 ,这边返回的是一个循环变量值index+1,再将这个变量值放入到需要变的地方,你可以直接返回一个带中文的变量值,比如:return ‘中文’+new Date().getTime(),表示返回的值为:中文后面加上时间;
(4)value填写变量名称index
填入的内容下图所示
在这里插入图片描述

<4>示例脚本

下面的脚本是实现每一页第一行的进行投诉反馈,其中每执行完第一页,页面跳转至下一页,直至第10页,执行完第10页第一行投诉反馈,关闭浏览器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
<5>导出脚本为java代码
在这里插入图片描述
在这里插入图片描述
// Generated by Selenium IDE
import org.junit.Test;
import org.junit.Before;
import org.junit.After;
import static org.junit.Assert.;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.core.IsNot.not;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Alert;
import org.openqa.selenium.Keys;
import java.util.
;
import java.net.MalformedURLException;
import java.net.URL;
public class TousuTest {
private WebDriver driver;
private Map<String, Object> vars;
JavascriptExecutor js;
@Before
public void setUp() {
driver = new FirefoxDriver();
js = (JavascriptExecutor) driver;
vars = new HashMap<String, Object>();
}
@After
public void tearDown() {
driver.quit();
}
@Test
public void tousu() {
driver.manage().window().setSize(new Dimension(1465, 860));
driver.get(“http://IP地址/”);
driver.findElement(By.cssSelector(".btn")).click();
driver.findElement(By.linkText(“订单管理”)).click();
driver.findElement(By.cssSelector(".level-group:nth-child(4) > .sub-level:nth-child(3) span")).click();
driver.findElement(By.linkText(“投诉详情”)).click();
driver.findElement(By.cssSelector(".u-textarea")).click();
driver.findElement(By.cssSelector(".u-textarea")).sendKeys(“投诉”);
driver.findElement(By.cssSelector(".m-status-button")).click();
{
WebElement element = driver.findElement(By.cssSelector(".m-status-button"));
Actions builder = new Actions(driver);
builder.moveToElement(element).perform();
}
{
WebElement element = driver.findElement(By.tagName(“body”));
Actions builder = new Actions(driver);
builder.moveToElement(element, 0, 0).perform();
}
{
WebElement element = driver.findElement(By.cssSelector(".m-status-button"));
Actions builder = new Actions(driver);
builder.moveToElement(element).perform();
}
{
WebElement element = driver.findElement(By.tagName(“body”));
Actions builder = new Actions(driver);
builder.moveToElement(element, 0, 0).perform();
}
driver.findElement(By.cssSelector(".active span")).click();
driver.findElement(By.cssSelector(".page-warp-nums")).click();
vars.put(“index”, js.executeScript(“return 1”));
do {
vars.put(“index”, js.executeScript(“return arguments[0]+1”, vars.get(“index”)));
driver.findElement(By.cssSelector(".page-warp-nums")).sendKeys(vars.get(“index”).toString());
driver.findElement(By.cssSelector(".page-submit")).click();
driver.findElement(By.linkText(“投诉详情”)).click();
driver.findElement(By.cssSelector(".u-textarea")).click();
driver.findElement(By.cssSelector(".u-textarea")).sendKeys(“投诉”);
driver.findElement(By.cssSelector(".m-status-button")).click();
driver.findElement(By.cssSelector(".active span")).click();
} while ((Boolean) js.executeScript(“return (arguments[0]<10)”, vars.get(“index”)));
driver.close();
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章