初識Selenium(二)

 ---------------------------------------------------------------------------------------------------------javascript

  1、Selenium-RC selenium-remote control 縮寫,是使用具體的語言來編寫測試類。css

  2、準備工做: 1,下載 selenium 了,到http://www.openqa.org/selenium/下載就能夠了,記得選擇selenium-rc 的版本html

  2, 學習一下xpath 的知識。有個教程:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.htmljava

  3, 安裝 jdk1.5css3

  3、selenium-rc 一些使用方法chrome

  1,解壓selenium-rc壓縮包瀏覽器

  2,啓動服務器服務器

  Selenium Server是用JAVA實現的,相應的庫文件在HOME/server/selenium-server.jar。運行以下代碼從命令行啓動:dom

  java 代碼 : java -jar selunium-server.jar工具

  4、編寫測試用例

  須要的JAR: selenium-java-client-driver.jar;junit

  編寫一個JUNIT單元測試,要構建一個Selenium,包括以下步驟:

  * 構建一個Selenium實例

  * 啓動Selenium實例

  * 執行Selenium命令,並驗證結果。

  * 關閉Selenium實例

  以下是一個示例,用來測試http://www.google.com/,查找selenium,指望結果中包含"OpenQA: Selenium"

 

 

  1. package com.thoughtworks.selenium;     
   2.  
   3. import junit.framework.*;  
   4.  
   5. import org.openqa.selenium.server.*;  
   6.  
   7. public class GoogleTest extends TestCase  
   8. {  
   9.    private Selenium selenium;  
  10.  
  11.    public void setUp() throws Exception {  
  12.         String url = "http://www.google.com";  
  13.        selenium = new DefaultSelenium("localhost", SeleniumServer.getDefaultPort(), "*firefox", url);  
  14.        selenium.start();  
  15.     }  
  16.      
  17.    protected void tearDown() throws Exception {  
  18.        selenium.stop();  
  19.    }  
  20.      
  21.    public void testGoogleTestSearch() throws Throwable {  
  22.         selenium.open("/intl/zh-CN/");  
  23.         selenium.type("q", "selenium");  
  24.         selenium.click("btnG");  
  25.         selenium.waitForPageToLoad("30000");  
  26.         assertEquals("selenium - Google 搜索", selenium.getTitle());
  27.       
  28.     }  
  29.       
  30. }  

 5、多環境測試

 

 

package test;

import org.junit.Test;

import junit.framework.TestCase;

import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;
/**
* 多瀏覽器測試
* @author hgz
*
*/
public class NewTest extends TestCase {
@Test
public void testNew() throws Exception {
Selenium selenium = new DefaultSelenium("localhost", 4444, "*chrome",
"http://www.google.cn");
script(selenium);
}

@Test
public void testNew2() throws Exception {
Selenium selenium = new DefaultSelenium("localhost", 4444, "*iehta",
"http://www.google.cn");
script(selenium);
}

private void script(Selenium selenium) throws Exception {
try {
selenium.start();
selenium.open("http://www.google.cn/");//調用 selenium.open 方法,瀏覽器會打開相應的頁面
selenium.type("q", "selenium");//使用 type 方法來給輸入框輸入文字
selenium.click("btnG");
selenium.waitForPageToLoad("30000");//等待頁面載入
assertEquals("selenium - Google 搜索", selenium.getTitle());//看看新的頁面標題是否是咱們想要的。
} catch (Exception e) {
throw e;
} finally {
selenium.stop();
}
}
}

6、如何選取元素

  selenium提供以下強大的定位元素的方法。

 

id=id
name=name
dom=javascriptExpression
xpath=xpathExpression
link=textPattern
css=cssSelectorSyntax

  1 經過ID,name選擇元素    selenium.type("id=q","百度"); selenium.type("name=search","百度")

  2 link= 根據連接文字來操做:selenium.click("link=我的資料");

  3 根據XPath來選擇元素  : XPath Checker

 

* xpath=//img[@alt='The image alt text']
* xpath=//table[@id='table1']//tr[4]/td[2]
* xpath=//a[contains(@href,'#id1')]
* xpath=//a[contains(@href,'#id1')]/@class
* xpath=(//table[@class='stylee'])//th[text()='theHeaderText']/../td
* xpath=//input[@name='name2' and @value='yes']
* xpath=//*[text()="right"]
如: selenium.type("xpath=//input[@name='user.email']", "xxx@123.com"); // 向input中type爲text的欄位鍵入信息
selenium.check("xpath=//input[(@name='user.sex')and(@value='男')]");// 向input中type爲radiod的 選取

  4 dom選擇

 

* dom=document.forms['myForm'].myDropdown
* dom=document.images[56]
* dom=function foo() { return document.links[1]; }; foo();

  5 css選擇器

  這個不經常使用,它能夠支持css2, css3選擇器

 

* css=a[href="#id3"]
* css=span#firstChild + span

  7、使用selenium 這個對象來進行測試

  獲取標 : assertEquals("Insert title here", selenium.getTitle());

  判斷頁面是否存在一個user.email元素  :assertTrue(selenium.isElementPresent("xpath=//input[@name='user.email']"));

  獲得文本框裏的文字:   assertEquals(selenium.getValue("xpath=//input[@name='user.username']"),"xxxaas");

  測試check box  :    assertTrue(selenium.isChecked("xpath=//input[(@name='user.sex')and(@value='')]"));

  點擊提交按鈕   : selenium.click("xpath=//input[@type='button']");

  等待頁面載入   : selenium.waitForPageToLoad("2000");

  驗證指定文本出如今提交給用戶的頁面上: assertTrue(selenium.isTextPresent("驗證碼輸入有誤,請覈實後再輸入"));

  判斷下拉框裏選擇了哪一個選項 :assertEquals(selenium.getSelectedIndex("xpath=//SELECT[@name='HATIMING']"), "1");

  如何測試一些錯誤消息的顯示? assertTrue(selenium.getBodyText().indexOf("錯誤消息")>=0);

  getBodyText 返回的時瀏覽器頁面上的文字,不回包含html 代碼的,若是要顯示html 代碼,用下面這個:selenium.getHtmlSource();

  8、Firefox 的插件

  1 XPath Checker :能夠用這個工具測試簡化咱們的xpath表達式

  2 Firebug

  3 Selenium IDE

4 Execute JS

相關文章
相關標籤/搜索