css - 如果“用户”已登录,我想每次都调用自动检查。如果没有,则“用户”登录,然后重定向回(url)
问题描述
为了使测试用例尽可能短,我想避免重复整个登录过程和每次点击。
我想要的是一个功能来检查“用户”是否已经登录并将其与每种情况的不同逻辑(是或否)结合起来。
假设我立即调用 browser.get('/newUrl');
测试用例的第一行。应该发生的是:系统检查它是否已登录...如果是 -> 重定向到/newUrl
| 如果 NO -> 重定向到/login
,登录然后重定向回/newUrl
因此,我知道量角器的urlIs
and getCurrentUrl
,我尝试将其与browser.driver
. 这还没有奏效,我有点期待。
redirectToMandate() {
browser.driver.wait(() => {
browser.driver.getCurrentUrl().then(() => {
if (browser.driver.getCurrentUrl() !== '/mandate') {
const loginPage = element(by.cssContainingText('a', 'Passwort vergessen? (Mail an Admin)'));
browser.wait(until.visibilityOf(loginPage), 15000, 'Error element taking too long to appear');
page.valuesForLogin();
const loginButton = element(by.id('btn-login'));
loginButton.click();
const mandateText = element(by.cssContainingText('.AppSubHeader_mainTitle', 'Mandate'));
expect(browser.wait(until.visibilityOf(mandateText)));
} else {
browser.get('/mandate');
browser.wait(
until.urlContains('/mandate'), 10000
);
}
});
});
}
我已经开始尝试类似上面的方法,但它不起作用
我将不胜感激任何可能的帮助,谢谢!
解决方案
老实说,在这 20 行中,它可能有 100 个不同的原因导致它不起作用。所以你真的应该发布你得到的错误
这是我在黑暗中拍摄的,试试吧
redirectToMandate() {
browser.driver.wait(() => {
browser.driver.getCurrentUrl().then((currentURL) => { // these two lines
if (!currentURL.includes('mandate')) { // these two lines
const loginPage = element(by.cssContainingText('a', 'Passwort vergessen? (Mail an Admin)'));
browser.wait(
until.visibilityOf(loginPage),
15000,
'Error element taking too long to appear'
);
page.valuesForLogin();
const loginButton = element(by.id('btn-login'));
loginButton.click();
const mandateText = element(by.cssContainingText('.AppSubHeader_mainTitle', 'Mandate'));
expect(browser.wait(until.visibilityOf(mandateText)));
} else {
browser.get('/mandate');
browser.wait(
until.urlContains('/mandate'), 10000
);
}
});
});
}
如果没有帮助,请学习调试,我只能说...例如首先控制台记录您的网址,然后尝试验证是否/其他工作,然后分别检查每个步骤等...
推荐阅读
- hyperledger-composer - 如何在本地使用超级账本网卡
- php - 从 gmail 复制客户端数据并提交表单时 PHP 抛出 403 禁止错误
- php - 在 Drupal8 自定义块中使用自定义树枝模板
- c++ - Android 上 __property 的 Embarcadero C++Builder 错误
- ios - Xcode 10 - 构建和安装后未更新应用程序
- python-3.x - 带有迁移学习的自动编码器?
- java - 如何使用声明范围之外的对象?
- php - 填补时间表中的空白
- java - 在非活动类中保存值
- model-view-controller - 如何将对象从剑道网格传递到 MVC 中的剑道窗口