2012-06-27 31 views
4

摘要:拍攝腳本生成的mailto URI

我正在做一些自動化測試(使用Selenium)web應用程序,和我試圖捕捉mailto:鏈接(其查詢參數特別是一個)在onclick事件期間由javascript生成。目前我能想到的唯一方法就是將邏輯複製到我的測試函數中。這並不理想,因爲這意味着如果它在webapp中發生變化,我將不得不更新測試中的邏輯。我的問題是:你能想出更好的方法嗎?

詳情:

這裏的web應用程序是如何工作的:

  • 監聽點擊事件上的div
  • 如果事件的目標是「電子郵件按鈕」生成一個mailto:URI基於當前狀態
  • 集合window.location = [generated URI]在JavaScript中

不幸的是,正如你所看到的,這個URI生成是由onclick事件發生的,並且只是將window.location設置爲該URI,所以它不會將其設置爲錨點上的href屬性(或任何其他屬性)元素,我可以查詢DOM的。

我也沒有找到一個事件,因爲window.location被設置爲可能將URI作爲其屬性之一的mailto:URI,所以會觸發事件...我可能會忘記一個?

任何想法?

+0

我想你考慮過['window.onbeforeunload'](https://developer.mozilla.org/en/DOM/DOM_event_reference/beforeunload)? –

+0

是啊,它似乎沒有激發'beforeunload'或'unload' ...我認爲它不認爲自己是(重新/非)加載任何東西,因爲它知道瀏覽器將處理'mailto'不同窗口/應用程序中的URI。 – JKing

+0

生成URI的代碼是否也會將它放在DOM中的某個位置,以便Selenium可以訪問它?例如在數據屬性或隱藏字段? – jabbett

回答

-1

您是否嘗試過使用onclick函數手動調用storeEval並分析返回值?