Selenium 程式設計實驗報告
1. 錄制腳本
首先下載下傳SeleniumIDE 插件,這裡我選擇selenium_ide-2.9.1-fx版本。然後拖到firefox浏覽器中插件管理界面,點選安裝。在所需要進行錄制的界面上,點選插件,之後在該界面上完成一系列的操作。當需要停止錄制的時候,點選selenium界面右上角的紅點。可以通過selenium上的運作按鈕來測試腳本錄制效果。之後選擇檔案導出腳本,導出的格式選擇Java/JUnit4/WebDriver。命名檔案名為Selenium.java。儲存到桌面。
2. 添加相關jar包
用ideaIDE建立java項目,将Selenium.java 複制到src目錄中。修改該檔案中的package; 并将如下的jar包下載下傳下來,并添加到External Libraries.
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CO4MTM1cTNzATMtMDOyIjM5UjMyYjMzAzNxAjMtMjM4UTO48CXzAzNxAjMvw1MygTN5gzLcd2bsJ2Lc12bj5ycn9Gbi52YuUTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
在下載下傳的過程中一定要注意版本,在這裡我下的selenium-java是2.53的。
3. 測試能否運作腳本
當所有的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位同學的名字是有錯誤的。
轉載于:https://www.cnblogs.com/lmns/p/6624597.html