Typescript 如何使用带量角器的aXe access.tool?
我正在尝试为我们的自动化测试套件实现一个可访问性测试工具。我正在用BDD(Cumber)在vsCode上测试一个带量角器的angular应用程序。测试是用typescript编写的,断言是用chai实现的 关于如何实现这个测试工具,我看到了很多不同的想法,但大多数都已经过时了,或者根本不适合我 现在发生的基本情况是,当我运行一个测试用例时,它通过了,但最后我在控制台中得到了一个错误: 未处理的PromisejectionWarning:NoSuchSessionError:此驱动程序 实例没有有效的会话ID(您是否调用了 WebDriver.quit()?)并可能不再使用。 在会话\流程\承诺(C:\Projekt\node\ modules\dragrator\node\ modules\selenium webdriver\lib\webdriver.js:847:16) 这告诉我的是,测试在关闭窗口后的after()钩子中运行、通过,然后(可能?)axe尝试运行其可访问性测试,但由于关闭了窗口,测试无效 到目前为止我所做的: 已安装npmTypescript 如何使用带量角器的aXe access.tool?,typescript,protractor,accessibility,axe,Typescript,Protractor,Accessibility,Axe,我正在尝试为我们的自动化测试套件实现一个可访问性测试工具。我正在用BDD(Cumber)在vsCode上测试一个带量角器的angular应用程序。测试是用typescript编写的,断言是用chai实现的 关于如何实现这个测试工具,我看到了很多不同的想法,但大多数都已经过时了,或者根本不适合我 现在发生的基本情况是,当我运行一个测试用例时,它通过了,但最后我在控制台中得到了一个错误: 未处理的PromisejectionWarning:NoSuchSessionError:此驱动程序 实例没有有
- “量角器可访问性插件”
- --保存开发人员“selenium webdriver@^2.46.1”(我有一个错误,它说没有安装对等依赖项)
- axe核心--保存开发
import { browser, Config } from 'protractor';
从“../support/Reporter”导入{Reporter};
导入路径=需要(“路径”)
导出常量配置:配置={
directConnect:没错,
硒承诺经理:错,
ignoreUncaughtExceptions:true
capabilities: {
browserName: 'chrome',
chromeOptions: {
prefs: {
download: {
'prompt_for_download': false,
'directory_upgrade': true,
'default_directory': path.resolve('./testdownloads'),
}
}
}
},
framework: 'custom',
frameworkPath: require.resolve('protractor-cucumber-framework'),
specs: [
'../../features/**/*.feature',
],
plugins: [{
axe: true,
package: 'protractor-accessibility-plugin'
}],
onPrepare: () => {
console.log('conf.js: onPrepare');
browser.manage().window().maximize();
},
allScriptsTimeout: 3 * 60 * 1000,
cucumberOpts: {
compiler: 'ts:ts-node/register',
format: ['json:./reports/json/cucumber_report.json'],
require: ['../../e2e-build/step_definitions/**/*.steps.js', '../../e2e-build/support/*.js', '../../e2e-build/step_definitions/**/*.walks.js'],
tags: '@mystuff'
},
onComplete: () => {
console.log('conf.js: onComplete');
},
afterLaunch: () => {
console.log('conf.js: afterLaunch');
Reporter.createHTMLReport();
}
在另一个来源上,我发现我应该将它插入到我的夹具中
<script src="node_modules/axe-core/axe.min.js"></script>
myStepDef.ts:
Given(/^i am on mywebsite.com$/, async function (){
await browser.get('www.mywebsite.com');
}
When(/^i click my button$/, async function () {
await myButton.click();
}
Then(/^something happens/, async function () {
expect(somethingHappening()).to.be.true;
}
当然还有一个页面文件,其中包含正确的选择器、元素和函数定义
如果你需要更多的信息,我会提供
Given(/^i am on mywebsite.com$/, async function (){
await browser.get('www.mywebsite.com');
}
When(/^i click my button$/, async function () {
await myButton.click();
}
Then(/^something happens/, async function () {
expect(somethingHappening()).to.be.true;
}