如何编写剧本任务来测试将键盘状态作为道具传递的React组件

时间:2019-01-04 17:04:07

标签: java serenity-bdd ag-grid-react

我正在尝试测试ag-grid组件的行为,该组件允许我使用键盘或单击选择一个单元格,并且grid组件捕获按键并将其传递给我编写的编辑器组件描述了here

以下内容可以模拟用户单击,按 Enter ,键入 5 y 并按 Enter 的情况kbd>,但我也想在没有中间Enter键的情况下验证正确的行为,例如模拟一次单击,单击,键入 5 y 并点击 Enter

actor.attemptsTo(
    Click.on(cell),
    new Performable() {
        @Override
        public <T extends Actor> void performAs(final T actor) {
            pricerPage.withAction().sendKeys(Keys.ENTER).perform();
        }
    },
    Enter.theValue("5y").into(PricerPage.POPUP_TEXT_EDITOR).thenHit(Keys.ENTER)
)

我似乎无法按预期将 5 按键传递给我的组件,例如以下内容不会以与发送 Enter 相同的方式触发编辑器组件。

actor.attemptsTo(
    Click.on(cell),
    new Performable() {
        @Override
        public <T extends Actor> void performAs(final T actor) {
            pricerPage.withAction().sendKeys("5").perform();
        }
    },
    Enter.theValue("y").into(PricerPage.POPUP_TEXT_EDITOR).thenHit(Keys.ENTER)
)

是否有更好的方法来发送没有目标的密钥?这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

我最终调试了我的测试和所测试的网页-我能够观察到键盘事件key属性设置为'Unidentified'而不是'5',类似于{{3} }

我想这个故事的寓意是,如果您尝试使用旧的锁定版本的浏览器进行自动化操作,则里程可能会有所不同...