我正在与Serenity接触,这是我被困了2天的问题。
我有:
然后,在将网络从登录页面更改为欢迎页面的步骤中,我要验证是否存在欢迎页面的按钮之一。
在从登录页面到欢迎页面的过渡中,出现“加载飞溅”,然后几秒钟后,出现“欢迎”页面。
This is my scenario
Given that Sarah navigates to the access page
When she enters email as xxxx@yyyyy.com
And she enters password as zzzzzz
And she clicks the button Login
Then she should navigates to the Empresa JMM Enterprise welcome page
我在最后一步(然后)中得到了错误。
这是我单击“登录”按钮的步骤的代码:
this.When(/^prueba pulsar boton (.*?)$/, function (buttonText: string) {
return this.stage.theActorInTheSpotlight().attemptsTo(
ClickIniciarSesion.click(buttonText)
)
});
这是我验证按钮是否存在的代码
this.Then(/^s?he should navigates to (.*?) Enterprise welcome page$/, function (enterpriseName: string) {
return this.stage.theActorInTheSpotlight().attemptsTo(
See.if(WebElement.of(Header.WelcomeButton), el => expect(el).to.eventually.be.displayed)
)
我看到超时的执行时间和秒数,然后看到欢迎页面和按钮。我不知道为什么错误是超时,不是因为驱动程序找不到元素。
答案 0 :(得分:0)
我认为我有解决方案。在从登录页面到欢迎页面的过渡中,将显示加载页面。我认为在此加载页面中“宁静”正在“看起来”。
测试通过,可以禁用Angular同步,手动进行等待并启用同步。
this.Then(/^s?he waits the enterpise data load$/, function () {
return this.stage.theActorInTheSpotlight().attemptsTo(
UseAngular.disableSynchronisation()
);
});
this.Then(/^s?he should navigates to the (.*?) Enterprise welcome page$/, function (enterpriseName: string) {
return this.stage.theActorInTheSpotlight().attemptsTo(
Wait.until(Header.EnterpriseName, Is.visible()),
See.if(Header.EnterpriseName_Text, el => expect(el).to.eventually.be.equal(enterpriseName)),
UseAngular.enableSynchronisation()
)
});
我不知道是否是更好的解决方案。