您可以使用所選語言的全部功能。例如,使用IDE時,您堅持使用IDE的API,但是如果您明確選擇使用WebDriver,則可以將它與C#結合使用,並使用C#的全部功能(如LINQ)。
一些IDE命令不是直接用WebDriver轉換的。
您可以將純WebDriver測試集成到CI(持續集成)服務器中。
它不僅限於Firefox,而IDE(因爲IDE僅在Firefox中可用)。
您可以更容易地改進和擴展Selenium。例如使用擴展方法和繼承。 (例如,擴展Selenium以便無論何時找不到某個元素,都會佔用該頁面的屏幕截圖)
它會更健壯,因爲IDE並不總是會爲您提供最可靠的查找元素的方法。例如,如果您需要的元素嵌套在表格中,那麼IDE將提供的XPath將直接推斷爲特定的表格行和單元格。
例如是這樣的:
//table[1]/tr[1]/td[2]/table[1]/tr[1]/td[3]/a[1]/b
是不是世界上最可靠的XPath。那些沒有任何XPath或自動化測試知識或者Selenium如何工作的人會堅持使用它,然後浪費數小時來弄清XPath查詢失敗的原因。其他人會改變它,只是使用XPath作爲基本查詢。
如果您希望您的開發人員和/或測試開發人員使用Selenium,請直接使用WebDriver,IDE通常應用於那些沒有太多編程知識的人員(如某些測試人員)。它會更像是使用完全成熟的語言而不是腳本編程(畢竟,IDE生成的腳本純粹是HTML文件)。這個想法通常是針對那些沒有太多編程知識的人來簡單地打'玩',讓Selenium來完成這項工作。
拖放適用於IDE和WebDriver。
Selenium中的大部分開發(看起來)都會擴展WebDriver代碼,IDE可能會留下一些新功能。
直接使用WebDriver,您還可以使用單元測試框架(通常是NUnit與C#或Junit/TestNG for Java)的完整功能。這允許爲每個瀏覽器重複測試(即,e在Chrome,Firefox和IE中重複測試)或在測試前後(即添加用戶成員,創建用戶,設置其他測試數據)定義某些邏輯。
如果使用編程語言而不是腳本語言(即WebDriver使用編程語言編寫,IDE腳本只是HTML文件),開發人員可能更傾向於提供幫助。將它納入您的解決方案並將其作爲夜間構建過程的一部分有助於確保開發人員幫助您進行測試。
想一想,另一個例子是一個錯誤已被修復,但是卻引入了一個新的錯誤,導致你的測試失敗。誰來負責修復測試?你或他們?讓它直接使用WebDriver,他們只需查找Selenium的源代碼並找出API使用情況。使用IDE,它實際上是一個調用一些javascipt的HTML文件。沒有太多的文件。總結一下:如果你沒有太多的編程經驗,可以學習一門語言,直接使用WebDriver,或者直接使用IDE。要麼完成這項工作。