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();
}
}

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