karate - 如何处理空手道登录页面加载后的不确定性
问题描述
在我的应用程序中,它使用多层登录,例如应用程序向 Okta 发送请求,然后 okta 向 GCP 发送带有用户信息的请求,之后只有登录成功。我创建了登录功能:
* 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')
即使经过这些延迟并重试几次,它也会在最后一行失败。我想让它变成动态的,就像它最终失败并且无法/inventory-management
在 url 中找到一样,所以它再次重新加载页面。你能帮忙吗?
解决方案
抱歉,没有捷径可走,您已经尝试过重试等。
也许是时候考虑一些高级技术了,比如模拟部分 UI 或使用 API 来避免登录等:https ://github.com/intuit/karate/tree/master/karate-core#hybrid-tests
否则我没有其他建议。也许这里的其他人可以提供帮助。
推荐阅读
- c# - TabControl 自定义标签栏背景颜色
- r - 我正在尝试添加阿肯色州的州线。我还希望在滚动时显示邮政编码。我正在使用 ggplot
- java - 如何在 Java、XML 文件中显示具有特定 id 和标签名称以及特定父节点下的节点的值?
- postman - postman获取图片验证码乱码怎么解决
- javascript - 网站源代码中没有的数据来自哪里,如何使用 BeautifulSoup 获取数据?
- php - 如何在表中使用 php 替换时区,我尝试 preg_replace() 但显示错误
- java - 获取 SessionFactory 中的 Spring Data JPA 循环引用
- sql - SQL - 根据条件值添加新列或连接到表
- ruby-on-rails - 如何删除旧版本的捆绑器?
- angular - 只有在我的 launch.json 文件中初始化 dotnet api 之后,是否可以启动我的 Angular SPA?