Selenium 編程實驗報告java
1. 錄製腳本linux
首先下載SeleniumIDE 插件,這裏我選擇selenium_ide-2.9.1-fx版本。而後拖到firefox瀏覽器中插件管理界面,點擊安裝。在所須要進行錄製的界面上,點擊插件,以後在該界面上完成一系列的操做。當須要中止錄製的時候,點擊selenium界面右上角的紅點。能夠經過selenium上的運行按鈕來測試腳本錄製效果。以後選擇文件導出腳本,導出的格式選擇Java/JUnit4/WebDriver。命名文件名爲Selenium.java。保存到桌面。git
2. 添加相關jar包編程
用ideaIDE新建java項目,將Selenium.java 複製到src目錄中。修改該文件中的package; 並將以下的jar包下載下來,並添加到External Libraries.數組
在下載的過程當中必定要注意版本,在這裏我下的selenium-java是2.53的。瀏覽器
3. 測試可否運行腳本ide
當全部的jar包添加成功後,咱們會看到。本來Selenium.java 文件中找不到的類找到了。IDE 不報錯了。這個時候,咱們就能夠先運行一下,這個文件,看可否模擬腳本中的操做。函數
不幸的是,並不能很好的運行。咱們能夠看到firefox 瀏覽器被程序喚出了,可是界面一直停在那裏,並無動。過一會就會拋出一個異常。通過一番百度,咱們得知,這是因爲firefox 瀏覽器的版本太新了。測試
因而,咱們找到了firefox 的ftp,https://ftp.mozilla.org/pub/firefox/releases/,咱們找到41.0/linux-x86_64/zh-CN/,而後下載。Ubuntu下用「tar -jxvf 文件名」來解壓該文件,咱們把該文件解壓到/opt目錄下。以後咱們須要作的就是刪除以前的firefox。用以下命令移除。編碼
sudo apt-get remove firefox
sudo apt-get autoremove
移除了以前版本的firefox 以後,咱們還要注意,須要在/usr/bin目錄下建立firefox 的連接文件。
ln -s /opt/firefox/firefox /usr/bin/firefox
而後用終端打開firefox,點擊右上角的菜單鍵,查看當前firefox 的版本。
這個時候咱們要作的就是立刻關閉firefox 的自動更新。在設置中。以下圖
這個時候,咱們就算是解決了剛剛的問題了。而後再次點擊運行。果真,可以測試成功了。
4. 測試思路
咱們首先要將csv文件中的全部數據提取主來,放到一個List中,以後,讓測試經過@RunWith(Parameterized.class)來對List中的數組進行逐一測試。
對於@Before,咱們須要將driver 實例化,而且跳轉到baseUrl便可。
對於@After,咱們須要退出driver。
對於@Parameterized.Parameters,咱們須要讀取csv文件,並將數據轉化成List數組。
還要根據須要寫對應的構造函數。
5. 編寫程序
趟過了剛剛全部的艱難以後,咱們終於要寫程序了。其餘的都比較好寫,不作贅述。咱們將如何寫@Parameterized.Parameters函數。我將inputgit.csv文件放在了項目同級目錄。這樣在程序中,咱們須要定位到inputgit.csv文件。由於常識,咱們知道csv文件中一行數據是以‘,’爲分隔符的,因此,咱們用java直接操做文件就好,不過,我在讀入的時候會遇到一個問題,就是中文亂碼問題,通過百度和測試,才肯定這個csv的文件的編碼個是GBK的。因此經過
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(inputFile), "GBK"));
來進行讀取,就能解決亂碼問題。以後,咱們可以將數據按照特定的順序,組成一個List等待測試。
在@Test這個函數中,咱們要作的就是,接收瀏覽器界面中的返回數據,咱們能夠看到有一個div中的innerHTML的文字就是咱們所須要的數據,咱們能夠經過id定位到這個元素,以後再獲取它的innerHTML來得到數據。
String result = driver.findElement(By.id("resultString")).getAttribute("innerHTML").trim();
得到後的數據中首部會有多餘的空格,用.trim(),去掉多餘的空格就獲得了咱們想要的數據,以後在經過Junit中的asserEquals進行比對便可。
6. 結果展現。
咱們能夠清楚的看出有5位同窗的名字是有錯誤的。