在 e2e 测试中的测试开始时将浏览器初始化为基础 URL
Initialize browser to a base URL at the beginning of a test in e2e testing
我有一个 Django 项目,其中一些页面使用 React 来增强用户体验。我想创建集成测试以确保这些页面不会随着时间的推移而退化。经过一番挣扎,我选择了测试nightwatch.js
.
我的网络服务器专用于在 localhost:8500
上测试 运行,我希望 nightwatch.js 完成的所有查询都在该服务器上进行。我这样配置测试工具:
...
"test_settings" : {
"default" : {
"launch_url" : "http://localhost:8500/",
...
问题是我不知道如何使用这个设置。当我使用 init()
方法时,测试似乎卡在了主页上...例如,使用此测试:
module.exports = {
'Test account login in /admin': function (browser) {
browser.init().url('/admin/')
.waitForElementVisible('body', 1000)
.setValue('#id_username', 'username')
... + click, wait, check results
.end();
}
};
...失败,我可以看出这是因为浏览器仍在主页上(代码中的某些断言显示了我主页中的元素)。
这里有什么问题?如何让浏览器在特定 URL 上启动?
看起来 .url()
方法只接受绝对 URL 参数。您应该通过单击链接或通过该功能提交绝对 URL 来浏览您的应用程序...
可以通过使用 browser.launchUrl
:
browser.url(browser.launchUrl+'admin/')
我打开 an issue on the nightwatchjs Github 以建议使用相对 URL 的可能性。
我有一个 Django 项目,其中一些页面使用 React 来增强用户体验。我想创建集成测试以确保这些页面不会随着时间的推移而退化。经过一番挣扎,我选择了测试nightwatch.js
.
我的网络服务器专用于在 localhost:8500
上测试 运行,我希望 nightwatch.js 完成的所有查询都在该服务器上进行。我这样配置测试工具:
...
"test_settings" : {
"default" : {
"launch_url" : "http://localhost:8500/",
...
问题是我不知道如何使用这个设置。当我使用 init()
方法时,测试似乎卡在了主页上...例如,使用此测试:
module.exports = {
'Test account login in /admin': function (browser) {
browser.init().url('/admin/')
.waitForElementVisible('body', 1000)
.setValue('#id_username', 'username')
... + click, wait, check results
.end();
}
};
...失败,我可以看出这是因为浏览器仍在主页上(代码中的某些断言显示了我主页中的元素)。
这里有什么问题?如何让浏览器在特定 URL 上启动?
看起来 .url()
方法只接受绝对 URL 参数。您应该通过单击链接或通过该功能提交绝对 URL 来浏览您的应用程序...
可以通过使用 browser.launchUrl
:
browser.url(browser.launchUrl+'admin/')
我打开 an issue on the nightwatchjs Github 以建议使用相对 URL 的可能性。