Karate 如何处理空手道登录后页面加载的不确定性

Karate 如何处理空手道登录后页面加载的不确定性,karate,Karate,在我的应用程序中,在Okta向GCP发送带有用户信息的请求之后,它使用了多个层进行登录,就像向Okta发送应用程序请求一样,之后只有登录成功。 我已将登录功能创建为: * driver fdiPortalUrl * maximize() * retry(50, 1000).waitForUrl('/login') * call read 'classpath:fdiPortalUI/fdiPortal

在我的应用程序中,在Okta向GCP发送带有用户信息的请求之后,它使用了多个层进行登录,就像向Okta发送应用程序请求一样,之后只有登录成功。 我已将登录功能创建为:

            * driver fdiPortalUrl
            * maximize()
            * retry(50, 1000).waitForUrl('/login')
            * call read 'classpath:fdiPortalUI/fdiPortalPageObjects.json'
            * if (exists(loginPage.username)) click(loginPage.username)
            * if (!exists(loginPage.username)) reload()
#           * retry(50, 1000).waitFor(loginPage.username)
            * retry(30, 1000).waitForUrl('/login')
            * match text(loginPage.usernameLabel) contains 'Username'
            * match text(loginPage.passwordLabel) contains 'Password'
            * input(loginPage.username, username)
            * input(loginPage.password, password)
            * waitForEnabled(loginPage.signInBtn).click()
            * retry(20, 1000).waitForUrl('/auth/callback')
            * retry(50, 1000).waitForUrl('/inventory-management')
即使在这些延迟和重试之后,它在最后一行也会失败。我想让它变得动态,就像它在最后失败了一样,并且无法在url中找到
/inventory management
,所以它会再次重新加载页面。
您能帮忙吗。

对不起,没有捷径可走,您已经尝试过重试等

也许是时候考虑一些高级技术,比如嘲笑UI的部分,或者使用API来避免登录等:


否则我就没有别的建议了。也许这里的其他人可以提供帮助。

对不起,没有捷径可走,您已经尝试过重试等

也许是时候考虑一些高级技术,比如嘲笑UI的部分,或者使用API来避免登录等:


否则我就没有别的建议了。也许这里的其他人能帮上忙。

谢谢@Peter,我会试试hybrid:)谢谢@Peter,我会试试hybrid:)