如何在 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>
这是否解决了您的问题?
我的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>
这是否解决了您的问题?