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

How to get iframe src value dynamically in nightwatch test case?

我的htmldom包含一个标签,src的值是动态生成的。请参阅下面的屏幕截图作为示例:

我想测试所选 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
     })
   })

如果我直接加载动态 url http://localhost:8080/che/wksp-rn6c?uid=514006,它能够找到 dom 元素。所以我想知道如何从测试用例中的 iframe src 获取 url 。 nightwatch 是否支持类似 $(.ide-page-frame).getAttribute('src') 的东西?

我认为你的问题在 browser.iframe(".ide-page-frame")

  • nightwatch 将查找具有 id="ide-page-frame" 的 iFrame,但您的页面中不存在。

If the frame id is missing or null, the server should switch to the page's default content.

我的提议:请将 class="ide-page-frame" 更改为 id="ide-page-frame"(或者您可以只添加 id 并保留 class

<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>

这是否解决了您的问题?