如何在nightwatch测试用例中动态获取iframe src值?

时间:2017-01-09 12:05:51

标签: javascript selenium iframe nightwatch.js

我的html dom包含一个标记,并且动态生成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')

之类的内容

1 个答案:

答案 0 :(得分:0)

我认为您的问题出在 browser.iframe(&#34; .ide-page-frame&#34;)

  • nightwatch将查找具有 id =&#34; ide-page-frame&#34; 的iFrame,该页面中不存在。
  

如果帧id丢失或为null,则服务器应切换到   页面的默认内容。

我的主张:请更改类=&#34; ide-page-frame&#34; id =&#34; ide-page-frame&#更改您的iFrame创建34; (或者您只需添加 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>

这会解决您的问题吗?