2017-01-09 40 views
0

我的html dom包含一個標籤,src的值是動態生成的。請參考下面的屏幕截圖作爲一個例子:如何在nightwatch測試用例中動態獲取iframe src值?

enter image description here

我想選擇的iframe標籤下測試DOM:

<iframe class="ide-page-frame" ng-src="http://localhost:8080/che/wksp-rn6c?uid=514006" src="http://localhost:8080/che/wksp-rn6c?uid=514006"></iframe> 

我使用下面方法來加載所述框架和把斷言代碼中回調函數。但它沒有找到任何dom。代碼如下所示。

browser 
    .url('http://localhost:8080/dashboard/#/ide/che/wksp-rn6c') 
    .frame(".ide-page-frame",()=>{ 
     // it can't find any dom here 
    }) 
    }) 

如果我直接加載動態鏈接http://localhost:8080/che/wksp-rn6c?uid=514006,它是能夠找到的DOM元素。所以我想知道如何從測試用例的iframe src中獲取url。 Nightwatch是否支持類似$(.ide-page-frame).getAttribute('src')

回答

0

我覺得你的問題是在browser.iframe(「IDE頁幀‘)

  • nightwatch將尋找具有ID =’IDE頁幀」的iFrame它不存在於您的網頁中。

如果幀ID缺失或無效,服務器應該切換到 頁面的默認內容。

我的命題:請通過ID通過改變類=「IDE頁幀」改變你的iFrame創建=「IDE頁幀」(或者你可以添加ID和保持

<iframe id="ide-page-frame" class="ide-page-frame" ng-src="http://localhost:8080/che/wksp-rn6c?uid=514006" src="http://localhost:8080/che/wksp-rn6c?uid=514006"></iframe> 

這是否解決問題了嗎?

+0

'.ide-page-frame'是類選擇器還是id選擇器? –

+0

@ ZhaoYi當你有一個像iframe id =「idIframe」>的iframe元素時,你可以使用client.frame('idIframe')將焦點改爲它,所以在你的情況下它應該是browser.frame(「ide-page-frame」 ) –