步前空手道
BeforeStep Karate
我正在使用 iFramed web(微前端),iFrame 包裹了整个主体(其中的元素),每次加载页面时我都需要切换 iFrame。
Given driver siteUrl
And call read('classpath:web/pages/login/login.feature@login_with_email') args
* def args = {main_menu: fleet-management, submenu: Truk}
And call read('classpath:web/internal/pages/dashboard/dashboard.feature@open_page') args
# LOAD NEW PAGE
* waitFor(iFrameId).switchFrame()
And click(pageA.elementA)
# LOAD NEW PAGE
* waitFor(iFrameId).switchFrame()
And click(PageB.elementB)
由于switchFrame
会被频繁使用,beforeStep将是一个很好的解决方案。
我做过研究:
Hook.java
@Override
public boolean beforeStep(Step step, ScenarioRuntime sr)
{
Runner.runFeature("classpath:utils/helper.feature@switch_frame", null, false);
}
helper.feature
Feature: Test Feature For Switch Frame
@switch_frame
Scenario: Switching focus to iFrame
* waitFor(iFrameId).switchFrame()
但现在我卡住了,从 hook.java 调用的 helper.feature 无法使用任何关键字(waitFor, switchFrame) 并且无法从 karate-config.js.
获取全局变量集
请帮忙,谢谢!!
不,我认为这是 over-engineering 而 Runner.runFeature()
并非设计用于此。
你把框架切换和点击合并成一个功能怎么样:
* def frameClick = function(frame, locator){ waitFor(frame).switchFrame(); click(locator) }
现在您可以:
* frameClick(iFrameId, pageA.elementA)
你甚至可以更聪明地设置 frameId
one-time:
* frameClick(pageA.elementA)
我正在使用 iFramed web(微前端),iFrame 包裹了整个主体(其中的元素),每次加载页面时我都需要切换 iFrame。
Given driver siteUrl
And call read('classpath:web/pages/login/login.feature@login_with_email') args
* def args = {main_menu: fleet-management, submenu: Truk}
And call read('classpath:web/internal/pages/dashboard/dashboard.feature@open_page') args
# LOAD NEW PAGE
* waitFor(iFrameId).switchFrame()
And click(pageA.elementA)
# LOAD NEW PAGE
* waitFor(iFrameId).switchFrame()
And click(PageB.elementB)
由于switchFrame
会被频繁使用,beforeStep将是一个很好的解决方案。
我做过研究:
Hook.java
@Override
public boolean beforeStep(Step step, ScenarioRuntime sr)
{
Runner.runFeature("classpath:utils/helper.feature@switch_frame", null, false);
}
helper.feature
Feature: Test Feature For Switch Frame
@switch_frame
Scenario: Switching focus to iFrame
* waitFor(iFrameId).switchFrame()
但现在我卡住了,从 hook.java 调用的 helper.feature 无法使用任何关键字(waitFor, switchFrame) 并且无法从 karate-config.js.
获取全局变量集请帮忙,谢谢!!
不,我认为这是 over-engineering 而 Runner.runFeature()
并非设计用于此。
你把框架切换和点击合并成一个功能怎么样:
* def frameClick = function(frame, locator){ waitFor(frame).switchFrame(); click(locator) }
现在您可以:
* frameClick(iFrameId, pageA.elementA)
你甚至可以更聪明地设置 frameId
one-time:
* frameClick(pageA.elementA)