2014-07-09 26 views
1

我使用selenium webdriver和C#自動運行。當我的Selenium自動化測試使用外部工具(例如Fiddler core/wireshark)運行時,是否有方法捕獲瀏覽器導航到的所有URL。我的意思是,當我的測試繼續運行時,我希望這些工具中的一些能夠並行地捕獲我的url,以便避免我的測試失敗,我可以通過使用最後幾個url(從失敗的角度)進一步調查以調試問題。在Selenium Tests運行時捕獲URL

這是真的有可能。我是否需要使用單獨的線程訪問這些工具之一(Fiddler/wireshark /任何其他工具)來捕獲url?

可以這樣做嗎

+0

如何http://stackoverflow.com/a/11053449/2504101? – olyv

回答

2

有幾個選項。

  1. 在您的Selenium測試開始前啓動wireshark(或fiddler)。您可以使用在您的測試設置中執行的批處理文件來執行此操作。
  2. 你可以利用瀏覽器插件的提琴手。 IE有一個,我不確定是否有所有瀏覽器的可比較插件。然後你可以讓Selenium通過瀏覽器激活它......假設fiddler保持在瀏覽器窗口中,並且不打開Selenium無法看到的單獨的非瀏覽器窗口。更新:提琴手插件不會留在瀏覽器窗口中,所以此選項將不起作用。
  3. 編寫一些包裝代碼,執行driver.Url並將其存儲到列表中。這個包裝代碼會檢查driver.Url是否與對象中最後存儲的條目不同,如果不同,則會將其添加到列表中。

所有的優點和缺點。 3會給你最大的控制力,因爲你的測試本身會收集URL並在代碼中維護一個你可以做你想做的事情的列表。 1當然會給你最強大的細節,這取決於你如何設置wireshark,並且你可以剖析整個機器和網絡體驗。 2是一箇中間地帶,你的測試仍然在驅動它,但結果是分開的......但作爲瀏覽器的一部分,你必須在測試後避免清理......如果你有更多的測試,可能會導致很多問題...

+0

謝謝,driver.url工作。我讓url捕獲運行在一個單獨的線程中,並遞歸調用它。一旦測試用例失敗,我將其保存到文本文件中。 非常簡單的解決方案,但它非常棒! –

+0

Fiddler的IE插件只是啓動該工具,它根本不會做任何其他事情。 Firefox插件可以選擇在Fiddler中指出Firefox的設置,但就是這樣。 – EricLaw

+0

完全正確的......這使得上面的選項2錯了......我會從頭開始 – mutt