Selenium IDE录制和导出脚本

Selenium IDE是一个可以用来开发调试Selenium脚本的工具,以浏览器插件的形式使用。
主要功能:
(1)可以录制、回放用户在web页面上的操作;
(2)可以编辑、调试命令脚本;
(3)支持将命令脚本导出为不同语言的Selenium自动化脚本;

Selenium IDE下载地址:
https://www.selenium.dev/downloads/
找到Selenium IDE部分,按不同浏览器下载即可

Selenium IDE安装
Selenium IDE是以浏览器插件的形式使用,故只需安装浏览器对应插件即可。

(1)Selenium IDE Firefox插件地址:
方法一:扩展程序下载地址:https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/
直接将上述地址下载的扩展程序selenium_ide-3.17.4.xpi拖至Firefox--扩展页面,直接添加Selenium IDE插件。
方法二:在Firefox浏览器扩展页面,搜索Selenium IDE,进入如下页面,直接点击添加至Firefox即可。

selenium-firefox-01.pngselenium-firefox-01.png

(2)Selenium IDE Chrome插件地址(需翻墙):
地址:https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd
Chrome浏览器直接打开如上扩展地址,点击添加至Chrome按钮添加扩展即可。如下图示:

selenium-chrome-01.pngselenium-chrome-01.png

Selenium IDE脚本录制
点击浏览器右上角Se图标,打开Selenium IDE窗口,如下图示:

selenium-02.pngselenium-02.png

可以选择新创建项目或打开已有的项目:

这里我们选择第一项:Record a new test in a new project
输入项目名:BaiDuTest
输入要录制web项目的根路径:https://www.baidu.com

进入Selenium IDE窗口,如下图示:

selenium-03.pngselenium-03.png

同时会打开输入地址对应的录制窗口,这时我们输入“Python”,点击“百度一下”按钮,可以看到查询出Python相关的结果。
此时,我们点击Selenium IDE窗口右上角红色的停止按钮,完成搜索动作的录制。如下图示:

selenium-04.gifselenium-04.gif

录制完成后,Ctrl+S保存当前录制的测试脚本,文件名为:BaiDuTest.side

此时,我们在Selenium IDE窗口中可以看到,根据操作自动生成的命令,如下图示:

selenium-05.pngselenium-05.png

命令说明:

CommandTargetValue说明
open/ 打开web根路径
set window size1188×742 设置窗口大小
typeid=kwPython搜索关键字
clickid=su “百度一下”按钮点击事件

点击上方执行按钮,可以回放录制的动作。如下图示:

selenium-06.gifselenium-06.gif

命令窗口点击右键,可以插入、编辑、修改录制的命令,例如可将搜索Python改为搜索Java,则只需修改id=kw对应的Value即可。
修改完之后,执行回放,就可以看到修改后的命令回放效果。

Log窗口会显示每条命令的执行结果。

Selenium IDE导出脚本

点击左侧Test测试右侧的三个竖点,选择Export,选择不同语言导出对应的测试脚本,如下图示:

selenium-07.pngselenium-07.png

选择Python pytest导出Python测试脚本,test_searchPython.py脚本内容如下:

# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

class TestSearchPython():
  def setup_method(self, method):
    self.driver = webdriver.Firefox()
    self.vars = {}
  
  def teardown_method(self, method):
    self.driver.quit()
  
  def test_searchPython(self):
    self.driver.get("https://www.baidu.com/")
    self.driver.set_window_size(1188, 747)
    self.driver.find_element(By.ID, "kw").click()
    self.driver.find_element(By.ID, "kw").send_keys("Python")
    self.driver.find_element(By.ID, "su").click()
  

选择Java Junit导出Junit测试脚本,SearchPythonTest.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 SearchPythonTest {
  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 searchPython() {
    driver.get("https://www.baidu.com/");
    driver.manage().window().setSize(new Dimension(1188, 747));
    driver.findElement(By.id("kw")).click();
    driver.findElement(By.id("kw")).sendKeys("Python");
    driver.findElement(By.id("su")).click();
  }
}

以上为Selenium IDE录制回放、导出最简单的一个Demo,后续我们可以针对自身系统,录制一些复杂的业务操作,让Selenium来帮我们做一些固定的,重复性的回归测试等操作。

(完)

最后修改于:2022年10月17日 19:01

添加新评论