Selenium (3) —— Selenium IDE + Firefox录制登录脚本(101 Tutorial)


selenium IDE版本: 2.9.1

firefox版本: 39.0.3

参考来源:

Selenium官方下载

Selenium IDE

Understanding Selenium IDE vs Selenium RC

Selenium IDE Tutorial – Part 1

主要内容

Selenium IDE 是一个为进行Selenium测试的集成开发环境工具。Selenium测试可以用HTML table编写,也可以用其他语言来编写,比如C#,PHP,Perl,Python。IDE可以为我们录制,编辑和调试测试。目前IDE以addon的形式只支持Firefox。

安装

可以到以下地址安装

http://selenium-ide.openqa.org/download.jsp

https://addons.mozilla.org/en-US/firefox/addon/2079

安装完毕后需要重启firefox,注意当前最新的IDE 2.9.1与Firefox 40+不太兼容,建议使用40以下的版本,我这里使用的是39.0.3

录制

以登录cnblogs为例

IDE启动时,默认状态下是正在录制的

如果没有处于录制状态,需要点击右上角的红色按钮

  • 我们在浏览器上一次进行以下操作

    1. 输入URL地址http://passport.cnblogs.com/user/signin,并访问
    2. 输入用户名、密码
    3. 点击登录

  • HTML table格式

    保存测试文件

    查看录制文件

      	<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head profile="http://selenium-ide.openqa.org/profiles/test-case">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="selenium.base" href="http://passport.cnblogs.com/" />
    <title>cnblogs</title>
    </head>
    <body>
    <table cellpadding="1" cellspacing="1" border="1">
    <thead>
    <tr><td rowspan="1" colspan="3">cnblogs</td></tr>
    </thead><tbody>
    <tr>
    <td>open</td>
    <td>/user/signin?AspxAutoDetectCookieSupport=1</td>
    <td></td>
    </tr>
    <tr>
    <td>type</td>
    <td>id=input1</td>
    <td>weizhe_2008</td>
    </tr>
    <tr>
    <td>type</td>
    <td>id=input2</td>
    <td>********</td>
    </tr>
    <tr>
    <td>clickAndWait</td>
    <td>id=signin</td>
    <td></td>
    </tr> </tbody></table>
    </body>
    </html>
  • 导出其他格式(Java,Ruby)

    同样在文件菜单下,我们可以选择导出java或其他语言(File-> Export Test Case As...)

    • Java(Java / TestNG / WebDriver)

        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 Cnblogs {
      private WebDriver driver;
      private String baseUrl;
      private boolean acceptNextAlert = true;
      private StringBuffer verificationErrors = new StringBuffer(); @BeforeClass(alwaysRun = true)
      public void setUp() throws Exception {
      driver = new FirefoxDriver();
      baseUrl = "http://passport.cnblogs.com/";
      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
      } @Test
      public void testCnblogs() throws Exception {
      driver.get(baseUrl + "/user/signin?AspxAutoDetectCookieSupport=1");
      driver.findElement(By.id("input1")).clear();
      driver.findElement(By.id("input1")).sendKeys("weizhe_2008");
      driver.findElement(By.id("input2")).clear();
      driver.findElement(By.id("input2")).sendKeys("********");
      driver.findElement(By.id("signin")).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;
      }
      }
      }
    • Ruby(Ruby / RSpec / WebDriver)

        	require "json"
      require "selenium-webdriver"
      require "rspec"
      include RSpec::Expectations describe "Cnblogs" do before(:each) do
      @driver = Selenium::WebDriver.for :firefox
      @base_url = "http://passport.cnblogs.com/"
      @accept_next_alert = true
      @driver.manage.timeouts.implicit_wait = 30
      @verification_errors = []
      end after(:each) do
      @driver.quit
      @verification_errors.should == []
      end it "test_cnblogs" do
      @driver.get(@base_url + "/user/signin?AspxAutoDetectCookieSupport=1")
      @driver.find_element(:id, "input1").clear
      @driver.find_element(:id, "input1").send_keys "weizhe_2008"
      @driver.find_element(:id, "input2").clear
      @driver.find_element(:id, "input2").send_keys "********"
      @driver.find_element(:id, "signin").click
      end def element_present?(how, what)
      ${receiver}.find_element(how, what)
      true
      rescue Selenium::WebDriver::Error::NoSuchElementError
      false
      end def alert_present?()
      ${receiver}.switch_to.alert
      true
      rescue Selenium::WebDriver::Error::NoAlertPresentError
      false
      end def verify(&blk)
      yield
      rescue ExpectationNotMetError => ex
      @verification_errors << ex
      end def close_alert_and_get_its_text(how, what)
      alert = ${receiver}.switch_to().alert()
      alert_text = alert.text
      if (@accept_next_alert) then
      alert.accept()
      else
      alert.dismiss()
      end
      alert_text
      ensure
      @accept_next_alert = true
      end
      end

回放

点击Selenium IDE菜单栏上的绿色按钮

执行结果

结束

Selenium (3) —— Selenium IDE + Firefox录制登录脚本(101 Tutorial)的更多相关文章

  1. Selenium IDE脚本录制步骤简介

    录制脚本步骤: 1.打开Selenium IDE,输入需要录制脚本的地址,然后启动Firefox,输入selenium IDE需录制的地址,根据实际需求,做相关操作: 2.录制过程中,会发现做的相关操 ...

  2. Selenium (4) —— Selenium是什么? WebDriver是什么?做什么?(101 Tutorial)

    Selenium (4) -- Selenium是什么? WebDriver是什么?做什么?(101 Tutorial) selenium版本: v2.48.0 (Standalone Seleniu ...

  3. Selenium (2) —— Selenium WebDriver + Grid2(101 Tutorial)

    Selenium (2) -- Selenium WebDriver + Grid2(101 Tutorial) jvm版本: 1.8.0_65 selenium版本: v2.48.0 (Standa ...

  4. Selenium (1) —— Selenium安装与测试(101 Tutorial)

    Selenium (1) -- Selenium安装与测试(101 Tutorial) jvm版本: 1.8.0_65 selenium版本: v2.48.0 (Standalone Selenium ...

  5. Selenium+python+shell+crontab+firefox

    最近在尝试一个自动打卡的脚本,发现了几个问题,特此记录一下. 环境: Ubuntu 12.04.4 LTS selenium 2.43.0 firefox 32.0.3 1 本来机器上selenium ...

  6. 【selenium】- selenium简介

    本文由小编根据慕课网视频亲自整理,转载请注明出处和作者. 1. Selenium的来历 2. Selenium家庭成员 Selenium RC: Selenium 1 Selenium Webdriv ...

  7. JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)

    JMeter (3) -- JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial) 主要内容 JMeter录制脚本并进行压力测试用户登陆场景,并以CAS SSO单点 ...

  8. selenium - 查看selenium版本信息

    1. pip list 2. pip show selenium 3. cmd>>python >>> import selenium>>> help( ...

  9. Selenium(一)---Selenium的安装和使用

    一.前言 最近在帮一个老师爬取网页内容,发现网页是动态加载的,为了拿到全部的网页数据,这里使用到了Selenium.Selenium 是一个用于Web应用程序测试的工具,它可以模拟真实浏览器,支持多种 ...

随机推荐

  1. 关于埃博拉病毒的基本知识(ABC)

    科学研究表明.埃博拉病毒的存在历史很久远,可能有两千多万年的历史,在类人猿出现的时期就已存在. 埃博拉病毒呈现一种"蚕丝状",又细又长,无色透明.直径有80纳米,长短不等,在14微 ...

  2. SQLServer2012 (非)聚集索引存储探究

    SQLServer2012 (非)聚集索引存储探究 Author:zfive5(zidong) Email:zfive5@163.com 引子 因为写了前一篇文字<SQLServer2012 表 ...

  3. Android Camera开发:给摄像头预览界面加个ZoomBar(附完整代码下载)

    源码:http://files.cnblogs.com/android100/StandardCamera2013-10-18.zip 废话不说了,就是加个seekbar,拖动的话能够调节焦距,让画面 ...

  4. webpack 4.0的一些小坑

    一.需要指定开发模式还是生产模式,需要改动两个地方: 1.package.json 中加入 --mode development "scripts": { "dev&qu ...

  5. 向量运算 与 JavaScript

    二维向量都包含两个值:方向(direction)及大小(magnitude)   这两个值可以表达出各种各样的物理特性来,比如力和运动.如两个物体间的碰撞检测.   向量的大小   虽说二维向量是对大 ...

  6. npm的影武者 —— Npx

    npx github:https://github.com/zkat/npx 什么是Npx?它和npm是什么关系? 如果你把NPM升级到最新版本npm@5.2.0 ,它就会安装一个新的包npx $ n ...

  7. 将多个 docx 文件使用 POI 进行合并,生成单个文档,包含图片

    1 添加 maven 依赖,需要使用 poi 的依赖项 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-scratchpad ...

  8. 国内高速下载Docker 以及 docker-compose 地址

    下载地址: http://get.daocloud.io https://blog.csdn.net/nklinsirui/article/details/80610058

  9. linux分享四:cron系统

    cron相关文件: /etc/cron.monthly/ /etc/cron.weekly/ /etc/cron.daily/ /etc/cron.hourly/ /etc/cron.d/ /etc/ ...

  10. 【Unity】7.2 鼠标输入

    分类:Unity.C#.VS2015 创建日期:2016-04-21 一.简介 在桌面系统的游戏中,鼠标输入是最基本的输入方式之一.游戏很多操作都需要鼠标来完成,例如武器的瞄准和开火.菜单的单击.物体 ...