Selenium
IDE是一個(gè)firfox插件,錄制相當(dāng)方便,而且效果不錯(cuò),很多錄制后不需要修改即可回放.編輯也相當(dāng)簡單,一行就是一個(gè)完整的命令.十分適合于編程基
礎(chǔ)較薄的測試人員使用.但是由于所用的語言是selenese即是類html腳本語言而非程式語言,于組織腳本不夠靈活,所形成的功能不如
selenium RC 強(qiáng)大,而且對腳本組織也不方便.更重要的是暫時(shí)只支持 firefox瀏覽器.所以一般情況下是以selenium IDE
來熟悉 selenium功具.然后利用IDE 來錄制腳本作為selenium
core的腳本文件或更多的是用IDE錄制而保存為drive腳本即是程式語言腳本如java 腳本.但無論如何 selenium
IDE是學(xué)習(xí)selenium的必修課,因?yàn)槿蘸箐浿颇_本需要它,即使用selenium
rc也可用它錄制部分腳本并可方便用于調(diào)試.下面將簡單介紹Selenium IDE的整個(gè)使用過程.
1>
Selenium IDE 安裝. 從其官方網(wǎng)站下載安裝:http://selenium-ide.openqa.org/,跟普通frifox
插件安裝沒有什么兩樣(注意是firefox安裝插件不是IE哦..).安裝完成后,在瀏覽器"工具"菜單欄即可見Selenium IDE 工具.
3> Selenium
IDE編輯腳本.你可以在Table中修改,點(diǎn)擊相應(yīng)命令行,所在行內(nèi)部便會(huì)出現(xiàn)在下方,即可方便修改,如選擇相應(yīng)的command.當(dāng)然你也可以在
Sourece中修改,但人必須對 Selenium命令很熟悉. 現(xiàn)在修改下剛才錄制的腳本,將第二行命令的value 修改為Selenium.
4>Selenium IDE腳本運(yùn)行. 修改完后即可點(diǎn)擊運(yùn)行按鈕運(yùn)行.運(yùn)行剛才修改過的腳本,你會(huì)發(fā)現(xiàn)其迅速打開google瀏覽器并輸入"Selenium"并點(diǎn)擊進(jìn)行搜索.此時(shí)運(yùn)行結(jié)束.
6>打開 seleniumIDE腳本并運(yùn)行.這個(gè)就非常簡單了....
到此,Selenium IDE錄制并修改運(yùn)行整個(gè)過程完成了,你已經(jīng)可以輕松方便使用selenium
IDE進(jìn)行錄制運(yùn)行腳本了.但是要運(yùn)用到測試中去尚需要時(shí)間熟悉,如都有什么命令啊,如何進(jìn)行定位啊,如何用assert來驗(yàn)證驗(yàn)證點(diǎn)啊,這也是
selenium 測試主要學(xué)習(xí)的三點(diǎn).如果這三占都搞明白了,熟悉了,恭喜你,你已經(jīng)可以用selenium進(jìn)行測試了.
作為使用selenium IDE 工具并不復(fù)雜,而在于如何更熟悉它并用于測試中去.況且如前面提到只用Selenium IDE
進(jìn)行測試局限性太高,所以建議借學(xué)習(xí)selenium IDE 了解并熟悉selenium工具,然后用其錄制腳本并用 selenium
其它工具進(jìn)行測試如selenium Core, selenium RC,selenium
Grid.于本人使用經(jīng)驗(yàn)而言,建議使用selenium
RC.當(dāng)然并不是說其它不好,其它有自己的優(yōu)勢或是功能也是RC不具備的.從學(xué)習(xí)與使用方面考慮是先學(xué)習(xí) selenium IDE,
然后轉(zhuǎn)向Selenium RC. 所以接下來將介紹Selenium RC.
Part Two --- Selenium Introduction 1
其實(shí)幾天前就看了一下Selenium,不過因?yàn)橹皩憚e的東西,就拖到了今天。
Selenium包括三部分,Selenium core,Selenium IDE和Selenium RC。Selenium
core自然就是他的核心代碼,Selenium
IDE是用JavaScript寫成的Firefox插件,可以錄制腳本,轉(zhuǎn)換成其他語言,并且回放等。但是喵喵在這里主要想說的是Selenium
RC,即Selenium Remote Control,以及它和ant的集成使用。
Selenium Remote Control現(xiàn)在最新的是0.9.2,可以在http://www.openqa.org/selenium-rc/下
載。Selenium Remote Control可以允許你使用編程語言(Java, .NET, Perl, Python, and
Ruby)實(shí)現(xiàn)自動(dòng)化web應(yīng)用UI的測試,它提供了一個(gè)Selenium
Server,它可以自動(dòng)的start/stop/control所有支持的瀏覽器(Windows平臺(tái)上為Internet Explorer
6.0 and 7.0, Firefox 1.5.0.8 and 2.0, Opera 8.5.4 and 9.0.2)。
Selenium Server必須跑在JRE1.5以上版本,可以通過java -version查看當(dāng)前的JRE版本。
啟動(dòng)Selenium Server:java -jar selenium-server.jar
可以通過-interactive參數(shù)使之以interactive mode啟動(dòng),當(dāng)然,在此喵喵不采用這種方式,而是用java編寫testcase來進(jìn)行測試。
代碼如下:
import com.thoughtworks.selenium.*;
import junit.framework.*;
public class GoogleTest extends TestCase {
private Selenium browser;
public void setUp() {
browser = new DefaultSelenium("localhost",
4444, "*firefox", http://www.google.com);
browser.start();
}
public void testGoogle() {
browser.open(http://www.google.com/webhp?hl=en);
browser.type("q", "hello world");
browser.click("btnG");
browser.waitForPageToLoad("5000");
assertEquals("hello world - Google Search", browser.getTitle());
}
public void tearDown() {
browser.stop();
}
}
啟
動(dòng)Selenium
Server以后,就可以運(yùn)行上面的testcase了。相信大家也都看到了,這個(gè)testcase是繼承了junit的testcase。所以下面要講
的用ant進(jìn)行自動(dòng)化的編譯和測試就和前面的ant學(xué)習(xí)筆記(一)中提到的<junit>task完全一樣了。
ant腳本片段如下:
<!-- 編譯selenium test文件 -->
<target name="compileselenium">
<mkdir dir="${dist.selenium}"/>
<javac destdir="${dist.selenium}" deprecation="on">
<src path="${src.selenium}"/>
<classpath refid="classpath"/>
<classpath refid="proj.libs"/>
</javac>
</target>
<!-- 運(yùn)行selenium -->
<target name="selenium" depends="compileselenium">
<junit printsummary="yes" haltonfailure="yes">
<classpath>
<path refid="classpath"/>
<pathelement location="${dist.selenium}"/>
</classpath>
<formatter type="plain"/>
<test name="GoogleTest" haltonfailure="no" outfile="result"/ >
</junit>
</target>
Part Three -- Selenium學(xué)習(xí)筆記
最近準(zhǔn)備用Selenium自動(dòng)化錄制測試腳本,稍微總結(jié)一下。
Selenium的主頁是
http://seleniumhq.org
Selenium包括很多組件,其中我現(xiàn)在用的是Selenium RC和Selenium IDE。Selenium IDE是Firefox的一個(gè)插件,我們可以使用它錄制頁面操作。
Selenium
IDE安裝完畢之后,可以從工具菜單中激活,然后我們就可以在firefox中訪問需要測試的網(wǎng)頁,進(jìn)行各種頁面操作,Selenium
IDE在這個(gè)過程中會(huì)記錄我們的頁面控件和動(dòng)作。完成錄制之后,Selenium IDE生成一個(gè)HTML文件保存腳本,比如
<?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" />
<title>baidu</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">baidu</td></tr>
</thead><tbody>
<tr>
<td>open</td>
<td>/</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>kw</td>
<td>ckword</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>sb</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
我們可以導(dǎo)出成Java文件,比如:
package com.example.tests;
import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;
public class NewTest extends SeleneseTestCase {
public void setUp() throws Exception {
setUp("http://www.baidu.com/", "*chrome");
}
public void testNew() throws Exception {
selenium.open("/");
selenium.type("kw", "ckword");
selenium.click("sb");
selenium.waitForPageToLoad("30000");
}
}
只要導(dǎo)入相應(yīng)的selenium和Junit包就可運(yùn)行。
有一點(diǎn)需要注意的是在回放腳本時(shí),應(yīng)該添加setSpeed方法,參數(shù)是ms,因?yàn)镾elenium
IDE雖然可以選擇回放速度(慢——中——快),但實(shí)際上即使選擇慢速,Selenium
IDE仍然運(yùn)行的有些快,導(dǎo)致其在順序執(zhí)行用戶操作時(shí),可以發(fā)生沒等到頁面加載完畢就執(zhí)行下一個(gè)命令的現(xiàn)象,導(dǎo)致下一個(gè)命令找不到響應(yīng)的頁面控件。除了
setSpeed之外,Selenium IDE還可以添加大量的命令。具體見Selenium IDE界面。
另外一個(gè)關(guān)鍵是如何識別頁面控件。自動(dòng)化的核心是錄制的控件識別方法可以復(fù)用,Selenium
IDE支持的識別格式包括ID、Name、XPath:attributes、DOM index和XPath :
position,而且允許正則表達(dá)式,所以非常靈活,根據(jù)我使用的情況來看,對于富客戶端應(yīng)用,控件ID通常都增加了一個(gè)隨機(jī)數(shù),不適合做識
別,Name還不錯(cuò),但是如何這個(gè)控件Name帶有版本信息,比如控件在不斷升級,從1.3升到1.4,那么Name可以會(huì)失效,要小心。XPath:
position我用的最多,也覺得定位最準(zhǔn)。但是Selenium
IDE有時(shí)抓不到某些操作,比如,可以某一個(gè)Logout鏈接,是由span來實(shí)現(xiàn)的,此時(shí)Selenium
IDE抓不到,此時(shí)可以XPath:attributes識別,這樣寫://span[text()='Log out'],搞定。
對于Selenium IDE,還有很多細(xì)節(jié)需要學(xué)習(xí),比如正則表達(dá)式的應(yīng)用,如何寫出通用的識別方法,等等。我準(zhǔn)備使用Selenium IDE錄制腳本,然后導(dǎo)出成java文件,做一些修改之后用Selenium RC驅(qū)動(dòng)。
原文
http://www.ckword.com/blog/?p=36
Part Four --- About Selenium
優(yōu)勢:
1. 記錄測試過程中,所見 即是所得,selenium 的所有內(nèi)部程序都是用Javascipt編寫的。
[Javascrīpt: 由Netscape Communications 和Sun Micorsystems公司共同開發(fā)的一種描述語言,與Java 的關(guān)系比較松散。Javascrīpt 能為Web頁添加基本的聯(lián)機(jī)應(yīng)用程序和功能,但它不是一種真正的面向?qū)ο笳Z言。
它的工作特點(diǎn)是,當(dāng)client端發(fā)出一個(gè)JS的請求時(shí),它不必從web server下載,而直接由瀏覽器做出響應(yīng)。]
2. 支持多種操作系統(tǒng),如windows, Mac, Linux,也支持多種瀏覽器,如IE,Firefox, Mozilla.
若使用Selenium IDE進(jìn)行web 自動(dòng)記錄測試用例錄制,只能是在Firefox (筆者還沒試過Mozilla,嘿嘿)是先錄制好腳本,再在其它瀏覽器執(zhí)行測試用例,進(jìn)行測試。
3.
執(zhí)行兩種開發(fā)腳本,test runner,需要安裝Selenium
Core,執(zhí)行的文件為.HTML后綴名。另一種是driven(腳本語言編寫),支持多種語言:JAVA,.NET, Perl, Python,
Ruby.(在下用的是ruby, 沒辦法,誰叫它既簡潔又明了呢!^ ^)
劣勢:
較難處理邏輯關(guān)系強(qiáng)的業(yè)務(wù)測試。
Selenium 實(shí)質(zhì):
通過HTTP協(xié)議,發(fā)送請求來完成測試用例的。
Selenium 命令:只有兩種
1. 操作(action):用于模擬用戶與web的交互。
2. 斷言(assertion):驗(yàn)證一個(gè)命令的預(yù)期結(jié)果。(類似于watir^ ^)
Selenium 的組成:
Selenium IDE:firefox 的 plug-in。 是瀏覽器的工具,不能安裝在IE上。
Selenium Core:純粹由Javascrīpt組成的,有assertion機(jī)制的test suit runnner.
Selenium Remote Control:
一個(gè)代理與控制端, 可代替Selenium core 和IDE 的client端。
下載地址:http://www.openqa.org/
一個(gè)使用Selenium IDE的測試?yán)幽_本:
class NewTest
def test_foo
open "/intl/zh-CN/"
assertTitle "Google"
type "q", "selenium"
clickAndWait "btnG"
assertTitle "selenium - Google 搜索"
clickAndWait "link=高級搜索"
assertTitle "Google 高級搜索"
type "as_epq", "iccer"
select "lr", "label=簡體中文"
clickAndWait "btnG"
assertTitle "selenium "iccer" - Google 搜索"
click "link=測試| 軟件測試| 軟件缺陷跟蹤| 軟件配置工具| 測試用例設(shè)計(jì)| Web測試 ..."
end
end
將腳本拷下,存為.HTML文檔,再在firefox的selenium IDE工作中打開,執(zhí)行就OK了。(執(zhí)行不了就多試幾次吧。^ ^)
遲點(diǎn)要添加用selenium core的例子。
《Selenium簡介》
中講過,Selenium
RC支持多種語言編寫測試案例,如:C#,Python。在工作中,我傾向于是用Python這類動(dòng)態(tài)語言編寫測試案例,因?yàn)檫@樣的測試案例無需編
譯:>,試想如果你有1000個(gè)測試案例,每個(gè)都要編譯,那會(huì)給編譯服務(wù)器很大的壓力,而且案例修改后,還得重新編譯才能運(yùn)行:<。但在本系
列的文章中,我還是打算使用C#編寫示范例子。
Selenium RC下載:http://seleniumhq.org/download/

寫Selenium RC的測試案例
上一篇《Selenium IDE的使用》中,提到了Selenium IDE可以把錄制的腳本轉(zhuǎn)為其他語言的腳本,所以我繼續(xù)用上一篇的腳本為例子,下面是把腳本語言轉(zhuǎn)換為C#后的代碼:
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using Selenium;
namespace SeleniumTests
{
[TestFixture]
public class NewTest
{
private ISelenium selenium;
private StringBuilder verificationErrors;
[SetUp]
public void SetupTest()
{
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://change-this-to-the-site-you-are-testing/");
selenium.Start();
verificationErrors = new StringBuilder();
}
[TearDown]
public void TeardownTest()
{
try
{
selenium.Stop();
}
catch (Exception)
{
// Ignore errors if unable to close the browser
}
Assert.AreEqual("", verificationErrors.ToString());
}
[Test]
public void TheNewTest()
{
selenium.Open("/");
selenium.Type("kw", "hyddd");
selenium.Click("sb");
selenium.WaitForPageToLoad("30000");
try
{
Assert.IsTrue(selenium.IsTextPresent("hyddd - 博客園"));
}
catch (AssertionException e)
{
verificationErrors.Append(e.Message);
}
selenium.Click("//table[@id='1']/tbody/tr/td/a/font");
}
}
}
在這里,轉(zhuǎn)換后的腳本使用了NUnit測試框架,為了簡化,我用VS的Test Project代替(當(dāng)然你也可以用Console Application建立測試工程的),步驟如下:
1.建立Test Project

2.導(dǎo)入DLL引用
把selenium-dotnet-client-driver-1.0-beta-2目錄中的ThoughtWorks.Selenium.Core.dll,ThoughtWorks.Selenium.IntegrationTests.dll,ThoughtWorks.Selenium.UnitTests.dll加入項(xiàng)目:

3.把上面自動(dòng)生成的代碼再改一下
using System;
using System.Text;
using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Selenium;
namespace SeleniumTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void Test()
{
//127.0.0.1為Selenium測試服務(wù)器位置。
//4444為Selenium測試服務(wù)器監(jiān)聽端口。
//*iexplore為啟動(dòng)瀏覽器類型,我把它改為了IE瀏覽器。
//http://www.baidu.com為源地址。
ISelenium selenium = new DefaultSelenium("127.0.0.1", 4444, "*iexplore", "http://www.baidu.com");
selenium.Start();
selenium.Open("/");
selenium.Type("kw", "hyddd");
selenium.Click("sb");
selenium.WaitForPageToLoad("30000");
Assert.IsTrue(selenium.IsTextPresent("hyddd - 博客園"));
selenium.Click("//table[@id='1']/tbody/tr/td/a/font");
selenium.Close();
selenium.Stop();
}
}
}
4.啟動(dòng)Selenium測試服務(wù)器
打開cmd進(jìn)入selenium-server-1.0-beta-2目錄,輸入“java -jar selenium-server.jar”(需要先安裝JRE),啟動(dòng)Selenium測試服務(wù)器。

5.運(yùn)行測試案例
(1).運(yùn)行測試案例:

(2).測試結(jié)果:

恩,案例Pass了,如果案例失敗的話,Error Meesage會(huì)說明失敗的原因。
(注
意:和Firefox一樣,IE下也有屏蔽彈出網(wǎng)頁功能,修改設(shè)置方法:MenuBar->Tools->Popup
Blocker->Turn off Popup Blocker,或者在Popup Blocker Settings里面配置。)
Part Six -- 配置 selenium rc for HTTPS 測試
1。選擇工具
selenium有好幾種,首先需要確定的是哪種工具適合
* selenium IDE: 是一個(gè)firefox的plug-in,這個(gè)基本上對任何
測試都有用,主要是因?yàn)榭梢允∠麓罅康氖謱憸y試的時(shí)間。根據(jù)我的經(jīng)驗(yàn),最新的版本(1.0 beta)在RHEL 5.0上不能用,所以我用的是0.87版本。
在這里下載:http://selenium-ide.openqa.org/download.jsp不過它只能在firefox上用
* selenium rc : 這個(gè)是用來遙控的。(rc = remote controller)如果你需要在一臺(tái)電腦上控制
其它幾臺(tái)電腦進(jìn)行測試,我用的就是這個(gè)。不過我用它的主要原因是它支持比較多的腳本語言(perl,python。。。)寫自動(dòng)測試程序比較容易
* selenium core : 只能支持Selenese語言(a simple scrīpting language. Selenese
has a number of strict limitations: it has no conditionals (no "if"
statements), and it has no loops (no "for" statements). This can make
writing complicated tests difficult or even
impossible.)如果需要知道比較具體的區(qū)別的話,還是看它們自己的文件:http://wiki.openqa.org/pages
/viewpage.action?pageId=7632
2。配置
配置有很多步驟和方面,首先需要了解的是selenium rc的
工作流程

圖片看起來好像復(fù)雜,但是實(shí)際上我們可以將所有的部件放到一臺(tái)機(jī)器上。我們需要了解的是它的工作流程。
selenium包含三個(gè)部件:
測試程序(testing scrīpt)
selenium rc (selenium
server)
browser (firefox, in my case)
他們之間的關(guān)系如下
testing scrīpt <=>selenium server <=> browser
(1)測試程序?qū)TTP/HTTPS請求發(fā)給selenium server
(2)selenium server將請求轉(zhuǎn)發(fā)(also called proxing)給browser,
(3)browser 執(zhí)行請求,得到執(zhí)行結(jié)果,然后回復(fù)給selenium server
(4)selenium server 將回復(fù)轉(zhuǎn)發(fā)給測試程序*
(5)測試程序檢驗(yàn)測試結(jié)果,記錄之,然后執(zhí)行下一個(gè)測試
這個(gè)過程中,selenium server和browser必須要在同一臺(tái)機(jī)器上,但是測試程序可以隨意。我的配置是三者都在同一臺(tái)機(jī)器上。
測試環(huán)境配置 (testing environment configuration)
* perl (我使用的是perl)
用perl寫selenium的測試程序需要首先安裝必要的module:
Test::WWW::Selenium
我的安裝方式如下:
$> yum install perl.CPAN.386
-- yum 是
linux里面的程序包安裝程序
$> perl -MCPAN -e "install Test::WWW::Selenium"
--安裝Selenium會(huì)同時(shí)要求你同時(shí)安裝一些其它的module,比如Test::Mock Test::MockObject
Test::More Test::Exception Test::Mock:LWP Test::Pod.
如果你的CPAN配置好了的話,這些安裝都是自動(dòng)的,安裝過程中如果有提問,直接回車就好,一般不會(huì)有太多問題 (如果需要重新配置perl
CPAN,比如說我
$> perl -MCPAN -e "
shell"
CPAN> o conf init
*
JAVA
Selenium server 是用Java寫的,所以你需要有JAVA。我開始用的是
IBM JAVA 1.5后來才發(fā)現(xiàn)不行,就轉(zhuǎn)到了SUN的JRE1.6
* Selenium Core : 在selenium rc 的網(wǎng)站上說需要 selenium core,但是我的經(jīng)驗(yàn)是不必管它
* Selenium Server:
** 下載: Selenium 1.0
Major release
** unzip selenium-remote-control-1.0-beta-1-dist.zip
** 到這里其實(shí)就可以了,但是讓程序跑起來,這里需要一個(gè)額外的配置: 將firefox-bin放到系統(tǒng)路徑里面去
$> export PATH=$PATH:/usr/lib/firefox-1.5.0.9*
* HTTPS
前面的都很簡單。如果你不需要測試HTTPS,那么前面的配置就足夠了。但是要讓selenium server用HTTPS,還需要將一個(gè)專門用于測試的cert放到firefox里面去。步驟如下:
** open firefox
** import certificates:
*** go to "Edit->Preference"
-> open "Advanced" tab
-> click "Security" (or "Encryption" )
-> click "view certificates", a new window will open,
-> then select "Web Sites" tab
-> then click "import"(圖片如下)
3。最后一步,就是怎么讓程序跑起來。這里有三個(gè)問題需要注意:
1> selenium rc beta 1。0 的SSL cert已經(jīng)過期了(4/18/2008),所以我們需要將我們的系統(tǒng)時(shí)間改回到過期之前。
$> date 041800002007
2> 需要用讓selenium server使用剛剛設(shè)定好的firefox profile
3> 需要設(shè)置一個(gè)特定的參數(shù)(trustAllCertificates),讓所有的SSL請求能夠順利通達(dá)。[這條在selenium正式的網(wǎng)站上沒有寫出來,是通過看源程序找到的]
我的命令如下:
讓selenium server跑起來:
java -jar ~/server/selenium-server.jar "
-log /tmp/selenium.log "
-trustAllSSLCertificates "
-multiWindow "
-firefoxProfileTemplate /opt/ipatest.profile
15:52:10.698 INFO - Writing debug logs to /tmp/selenium.log
15:52:10.699 INFO - Java: Sun Microsystems Inc. 10.0-b19
15:52:10.699 INFO - OS: Linux 2.6.18-8.el5 i386
15:52:10.702 INFO - v1.0-beta-1 [2201], with Core v1.0-beta-1 [1994]
15:52:10.758 INFO - Version Jetty/5.1.x
15:52:10.760 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
15:52:10.762 INFO - Started HttpContext[/selenium-server,/selenium-server]
15:52:10.763 INFO - Started HttpContext[/,/]
15:52:10.772 INFO - Started SocketListener on 0.0.0.0:4444
15:52:10.773 INFO - Started org.mortbay.jetty.Server@5ac072
讓測試程序跑起來:
perl test.pl
我的test.pl 程序開頭部分如下:
----------------------------
#!/usr/bin/perl
use strict;
use warnings;
use Time::HiRes qw(sleep);
use Test::WWW::Selenium;
use Test::More "no_plan";
use Test::Exception;
my $sel = Test::WWW::Selenium->new( host => "localhost",
port => 4444,
browser => "*firefox",
browser_url => "https://some.com");
$sel->open_ok("/testpage");
$sel->click_ok("link=Add User");
$sel->wait_for_page_to_load_ok("30000");
$sel->type_ok("form_title", "auto001");
$sel->type_ok("form_givenname", "selenium");
$sel->type_ok("form_sn", "001");
$sel->type_ok("form_krbprincipalkey", "redhat123");
$sel->type_ok("form_krbprincipalkey_confirm", "redhat123");
$sel->click_ok("document.form.submit[1]");
$sel->wait_for_page_to_load_ok("30000");
$sel->is_text_present_ok("s001 added!");
$sel->click_ok("link=Find Users");
$sel->wait_for_page_to_load_ok("30000");
$sel->type_ok("uid", "s101");
$sel->click_ok("http://input["@value='Find Users']");
$sel->wait_for_page_to_load_ok("30000");
$sel->type_ok("uid", "s001");
---------------------------
我其實(shí)沒有寫什么東西,上面的程序都是selenium IDE自動(dòng)錄的。