1. 程式人生 > >selenium環境安裝、使用

selenium環境安裝、使用

上一篇selenium簡介中,我簡要介紹了一下selenium的歷史以及組成,本篇中,主要就是介紹一下selenium的使用,如何搭建基礎環境同時用你熟悉的語言進行測試用例的編寫。

考慮到我能力有限,因此就java和python來進行講解。實際上也就是下載上文提到的對應的語言的client libraries同時使用webdriver進行操作。順便說一下,這裡都是selenium3.

當然實際上selenium支援的語言有:

  • java
  • python
  • c#
  • js
  • php
  • ruby

java

1、安裝java環境

我大概說了句廢話

2、新增依賴

以maven為例:

        <dependency
>
<groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.3.1</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId> <version>3.3.1</version> </dependency>

測試框架,我一般使用junit或者是testng,用起來差不多吧。自行新增依賴。

再多說兩句,雖然用了一個單元測試框架,但是,這裡的測試完全不是單元測試級別(方法級別)的。

3、下載相對應的驅動、瀏覽器

selenium3以後,官方將所有的驅動重寫並且和webDriver分離。這意味著,如果你要使用selenium,除了裝了瀏覽器之外,還要下載響應的驅動。下面給一些常用的下載地址:
地址:

http://www.seleniumhq.org/download/

一般情況下,下載下來的檔案是一個二進位制而檔案(mac、linux)或者是一個exe檔案(windows)。

簡單說一下safari。這個是外掛驅動瀏覽器,所以下載下來的,是一個SafariDriver.safariextz這個檔案,而不是普通的驅動(二進位制)的檔案,那麼我們要首先在safari中安裝這個外掛。

此外,selenium支援的偽瀏覽器包括htmlunit、PhantomJS;他們都不是真正的在瀏覽器(headless)、都沒有GUI,而是具有支援html、js等解析能力的類瀏覽器程式;這些程式不會渲染出網頁的顯示內容,但是支援頁面元素的查詢、JS的執行等;由於不進行css及GUI渲染,所以執行效率上會比真實瀏覽器要快很多,主要用在功能性測試上面。

htmlunit是java實現的類瀏覽器程式,包含在selenium server中,無需驅動,直接例項化即可;其js的解析引擎是Rhino。

PhantomJS是第三方的一個獨立類瀏覽器應用,可以支援html、js、css等執行;其驅動是Ghost driver在1.9.3版本之後已經打包進了主程式中,因此只要下載一個主程式即可;其js的解析引擎是chrome 的V8。

下載瀏覽器大家應該都會,需要注意的是,要下載新版本!!

4、編碼

我們舉一個例子:

package com.taobao.uitest;

import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.safari.SafariDriver;

/**
 * Created by gpc on 17/4/12.
 */
public class MyUITest {

    @BeforeClass
    public void setProperity(){
        //設定驅動的地址
        System.setProperty("webdriver.gecko.driver", "/Users/gpc/Documents/selenium/geckodriver");
        System.setProperty("webdriver.chrome.driver", "/Users/gpc/Documents/selenium/chromedriver");

        //safari的話是外掛的地址
        System.setProperty("webdriver.safari.driver", "/Users/extrabux/library/safari/extensions");
        //safari如果已經有外掛了,new之前告訴程式,不需要程式再自動安裝SafariDriver extension
        System.setProperty("webdriver.safari.noinstall", "true");
    }

    @Test
    public void testDriver(){
        WebDriver firefoxDriver = new FirefoxDriver();
        WebDriver chromeDriver = new ChromeDriver();
        WebDriver safariDriver = new SafariDriver();
    }
}

上面是基於junit框架的。在例項化之前要先設定驅動,如果你把所有驅動都放在一個資料夾裡面,然後吧資料夾路徑放到classpath下,那麼就不用配置了。

下面簡要說一下幾個核心的類。

(1)WebDriver
所有的瀏覽器都繼承自這個介面。他定義了許多的標準的動作。

  • 開啟一個url
  • 清理cookie
  • 查詢元素
  • 基本操作如前進後退
  • 可以返回一個url或者title
  • 執行js

其實就是瀏覽器乾的事他基本都能幹。

(2)WebElement類
這個是元素類,所有的元素都是這個類。元素的操作也在上面執行。通過webDriver找到元素後,就在可以進行操作:

  • 點選,click()
  • 清除文字,clear()
  • 塞值,send_keys()
  • 獲取內容,text()
  • 獲取屬性,get_attribute()
  • select標籤下,選擇某一個元素,select_by_value()
  • 構成iframe並且切換進去,switch_to.frame(元素)
  • By.id(‘id’)根據id
  • By.name(‘name’)根據name
  • By.className(‘class’)根據class
  • By.tagName(‘tag’)更加標籤
  • By.linkText(‘linktest’)根據標籤中的內容精準匹配
  • By.cssSelector(‘css’)根據css選擇器進行選擇
  • By.xpath(‘xpath’)這個功能比較強大,自行了解下

那麼串起來,如果我們開啟淘寶登入頁面並且判斷是否進入我的淘寶就可以這麼寫:

package com.taobao.uitest;

import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

/**
 * Created by gpc on 17/4/12.
 */
public class MyUITest {

    @BeforeClass
    public void setProperity(){
        //設定驅動的地址
        System.setProperty("webdriver.gecko.driver", "/Users/gpc/Documents/selenium/geckodriver");
    }

    @Test
    public void testDriver() throws InterruptedException {
        String userName = "xxxx";
        String password = "xxxx";
        WebDriver firefoxDriver = new FirefoxDriver();
        //開啟網頁
        firefoxDriver.get("https://login.taobao.com/member/login.jhtml");

        //給他足夠時間開啟網頁
        Thread.sleep(3000);

        //清除帳號內容
        firefoxDriver.findElement(By.id("TPL_username_1")).clear();
        //寫入你的帳號
        firefoxDriver.findElement(By.id("TPL_username_1")).sendKeys(userName);
        //清除密碼內容
        firefoxDriver.findElement(By.id("TPL_password_1")).clear();
        //寫入你的密碼        
        firefoxDriver.findElement(By.id("TPL_password_1")).sendKeys(password);
        //點選登入        
        firefoxDriver.findElement(By.id("J_SubmitStatic")).click();

        //給他足夠時間登入
        Thread.sleep(3000);

        //新增斷言當前頁面是否為我的淘寶頁面
        Assert.assertTrue("我的淘寶".equals(firefoxDriver.getTitle()));
    }
}

這樣要比通過httpclient寫登入簡單多了。

python

1、安裝python

這裡注意,自行解決吧。

2、安裝selenium庫

可以直接通過pip進行安裝

#shell,直接搞最新版本的
pip install -U selenium 

如果要指定版本就這樣

#shell,直接搞最新版本的
pip install selenium=xxxxx

3、安裝瀏覽器以及驅動

額,這個就不多說了,一樣的

4、編碼

# coding=utf-8
from selenium import webdriver
import time

username = "xxxxx"
password = "xxxxx"

driver = webdriver.Chrome()
driver.get("https://login.taobao.com/member/login.jhtml")

#睡3s
time.sleep(3)

driver.delete_all_cookies()

driver.find_element_by_id("TPL_username_1").clear()
driver.find_element_by_id("TPL_username_1").send_keys(username)

driver.find_element_by_id("TPL_password_1").clear()
driver.find_element_by_id("TPL_password_1").send_keys(username)

driver.find_element_by_id("J_SubmitStatic").click()

time.sleep(3)

print driver.title

在python中一般用的比較多的就是unittest,不多說了。其中python的方法,和java的差不多,大家自己熟悉一下吧。

相關推薦

selenium環境安裝使用

上一篇selenium簡介中,我簡要介紹了一下selenium的歷史以及組成,本篇中,主要就是介紹一下selenium的使用,如何搭建基礎環境同時用你熟悉的語言進行測試用例的編寫。 考慮到我能力有限,因此就java和python來進行講解。實際上也就是下載上文

Java全棧程序員之02:Ubuntu下Java環境安裝配置測試

配置文件 軟件 三方 shel class 系統配置文件 一件事 devel java10 在上文講完之後,我們手裏的ubuntu只能算是一個上網機,什麽也幹不了,本篇我們將折騰它為開發機。 這裏,我們這裏假定你對linux體系是初級選手,所以本篇會講的啰嗦一點,高手就出

python+selenium環境安裝

gecko ide size window ins 3.0 storage 避免 電腦   目前 selenium 版本已經升級到 3.7了,網上的大部分教程是基於 2.x寫的,所 以在學習前先要弄清楚版本號,這點非常重要。本系列依然以 selenium2 為基礎, 目前

nexus3.14.0版本linux環境安裝啟動搭建私庫

本文介紹的是nexus3.14.0版本在linux環境下安裝、啟動、搭建私庫。 nexus3以上的版本太新了,網上很少介紹安裝細節的。據瞭解和2.X版本有所不同了。 1、前提 linux機器上需先安裝好jdk,並且配置好java環境變數。 2、安裝 把下載好的nexus-3.14.0-04-mac.

Selenium環境安裝

一 :安裝Python 1.下載Python3.4.3 2.安裝3.4.3 ,安裝後顯示 3.在cmd中輸入 python看環境變數是否配置成功 二:安裝Pip 1.https://pypi.python.org/pypi/pip 2.python s

Typescript 開發環境安裝Node.js安裝以及輸出HelloWorld

1.為什麼要學習Typescript 語言呢   原因很簡單,當然是為了工作呀,因為工作使我接觸到了Typescript語言,感覺它比較像C#、Java 這樣面向物件的語言,由於最近在使用它開發專案所以系統學習一下,在此記錄一下學習過程。 2.Typescript 語言百度百科介紹   TypeScript是

環境安裝直譯器介紹

Python安裝 一、Ptyhon介紹 因為Python是跨平臺的,它可以執行在Windows、Mac和各種Linux/Unix系統上。在Windows上寫Python程式,放到Linux上也是能 夠執行的。 要開始學習Python程式設計,首先就得把Python安裝到

無廢話MVC入門教程一[概述環境安裝建立專案]

MVC入門系列教程-視訊版本,已入駐51CTO學院,文字+視訊學效果更好哦。視訊連結地址如下: 點我檢視視訊。另外,針對該系列教程博主提供有償技術支援,群號:226090960,群內會針對該教程的問題進行及時解答,公用性問題統一講解。學習.NET MVC 只看在《無廢話系列》足夠了,《無廢話系列》簡單、快速、

jython環境安裝java呼叫python中文亂碼問題

1、jython安裝 jython下載地址 http://www.jython.org/downloads.html (1)直接雙擊“jython-installer-2.7.0.jar”一步步安裝即可 (2)配置環境變數,     新建系統環境變數:  JYTHON_HO

android 環境安裝helloworld demo 建立執行

         android是因為我的興趣而自學的,當初學完java se感覺迫切需要實現下自己的技能,然後看到身邊的手機,就決定學下android編個app玩下。現在斷斷續續倒騰了兩年android,發現知識很零碎,所以趕快來回顧整理下,廢話不多說,下面從搭建環境說起

Git Windows環境安裝配置初始化專案提交

windows下安裝git(注意去下載最新版本的git windows客戶端)https://blog.csdn.net/lvkelly/article/details/54666868windows下git的簡單實用(後面會有如何建立git 倉庫和push 程式碼)http

Java全棧程式設計師之02:Ubuntu下Java環境安裝配置測試

在上文講完之後,我們手裡的ubuntu只能算是一個上網機,什麼也幹不了,本篇我們將折騰它為開發機。 這裡,我們這裡假定你對linux體系是初級選手,所以本篇會講的囉嗦一點,高手就出門左轉吧。 1.安裝 首先我們確定下我們安裝的Ubuntu系統是否已經安裝了java環境。 進入終端,敲入命令su,進

Python語言——基礎01-環境安裝註釋變量

跟著 關註 ima 方便 com python語言 內容 一個 自己 開篇導言: 今天開始進行python學習的筆記更新,以後我都用截圖的方式更新,方便不麻煩,界面美觀,今天學習更新的python學習內容是環境安裝、註釋、變量的內容 關註我博客的童鞋從現在

centos6.5下安裝python3安裝python3虛擬環境創建venv

替代品 虛擬環境 由於 需要 tools python2.6 ipy模塊 python2 pip3   原因:在安裝完centos6.5後,通過命令行鍵入python時,默認為python2.6.6版本,系統並沒有安裝python3版本。又想學習python3,因此需要在c

Golang學習-第一篇 Golang的簡單介紹及Windows環境安裝部署

需要 簡單 電腦 pan 生成文件 多核 -- pear () 序言 這是本人博客園第一篇文章,寫的不到位之處,希望各位看客們諒解。 本人一直從事.NET的開發工作,最近在學習Golang,所以想著之前學習的過程中都沒怎麽好好的將學習過程記錄下來。深感惋惜! 現在將Gola

python+selenium自動化測試環境安裝

更改 可用 測試 tun art pyc amber 執行 文件的 因為自己安裝自動化測試環境時,遇到過許多問題,自己整理了一下安裝的步驟,感謝那些幫助過我的人。 1.安裝python,我裝的是3.5版本,網絡上也有許多安裝步驟,照著就可以了(其實一直下一步也行) 不

【轉】JMeter學習(二十九)使用Jmeter創建ActiveMQ JMS POINT TO POINT請求,環境搭建請求創建插件安裝監聽服務器資源等

分布式 jndi 根目錄 point 啟動 lib .cn 轉載 p2p 最近要做公司消息中間件的性能測試,第一個想到的工具就是Jmeter了,網上簡單搜了一下,基本上都是WEB測試的居多,只好自己研究官方文檔了。 其中涉及Jmeter基本的術語或者概念,請自行參考官方文檔

SpringMVC插件安裝環境配置及快速入門

應用 pre spring 包含 tro quest patch ava dispatch SpringMVC 是現在廣泛應用的框架結構,我也只是一個初學者,一遍學習一遍梳理整合,如有錯誤,希望大神指點,別誤人。 MVC :Model-View-Control 框架性質的C

windows系統下nodejs安裝環境配置及刪除NPM全局配置

例如 參考 -h clas shel fcm gpe tar tortoise nodejs安裝及設置NPM全局路徑 刪除NPM全局路徑配置 一、nodejs安裝及設置NPM全局路徑 第一步:下載安裝文件 下載nodejs,官網:http://nodejs.org/do

selenium+python +unitest 環境安裝

檢查 技術 分享 系統 密碼 chrome logs python 安裝python Python環境:3.6.1版本(已經安裝有2.7版本環境的小夥伴們可以同時安裝3.6.1) 在已安裝python2.7環境下安裝3.6.1方法如下: 1.先安裝Python2.7版本,在