Nightwatch + Cucumber 如何描述通用步骤
Nightwatch + Cucumber How to describe a generic step
我正在使用 nightwatch 和 cucumber 编写一些端到端测试。我想要一个泛型步骤。现在,我的步骤定义是这样的:
When (/^I click on 'Leave a comment'$/, () => {
return client
.click('a[id="leave-comment"]')
});
我想要一些像:
When (/^I click on "(.*?)"$/, (text) => {
...
});
但我无法使用 .click 执行此步骤。有什么想法吗?
我个人并不使用 Nightwatch,但我发现了一些适合您的东西。
调查:Nightwatch Custom Commands and Assertions
它将为您提供的功能之一是 jqueryClick,这将使您能够执行此操作:
When(/^I click on the link with text "(.*?)"$/, (text) => {
return client.jqueryClick('*:contains('+text+')');
});
它将所有 jQuery Selectors 添加到您的武器库中,使编写自动化变得更加容易。
应该做的工作
this.When('I click the "$element" element', (browser, element) => {
browser.click(element)
});
如果您使用页面对象,您将需要创建更复杂的函数,但这个函数适用于常见的 When I click the ".cssClass.ccsClass2" element
我找到的这个解决方案。我需要定义元素的类型,我使用了 xPath
When (/^I click on "(.*?)"$/, (text) => {
return client
.useXpath()
.waitForElementVisible('//button[text()="'+text+'"]', 7000)
.click('//button[text()="'+text+'"]')
.useCss()
.pause(1000);
});
我正在使用 nightwatch 和 cucumber 编写一些端到端测试。我想要一个泛型步骤。现在,我的步骤定义是这样的:
When (/^I click on 'Leave a comment'$/, () => {
return client
.click('a[id="leave-comment"]')
});
我想要一些像:
When (/^I click on "(.*?)"$/, (text) => {
...
});
但我无法使用 .click 执行此步骤。有什么想法吗?
我个人并不使用 Nightwatch,但我发现了一些适合您的东西。
调查:Nightwatch Custom Commands and Assertions
它将为您提供的功能之一是 jqueryClick,这将使您能够执行此操作:
When(/^I click on the link with text "(.*?)"$/, (text) => {
return client.jqueryClick('*:contains('+text+')');
});
它将所有 jQuery Selectors 添加到您的武器库中,使编写自动化变得更加容易。
应该做的工作
this.When('I click the "$element" element', (browser, element) => {
browser.click(element)
});
如果您使用页面对象,您将需要创建更复杂的函数,但这个函数适用于常见的 When I click the ".cssClass.ccsClass2" element
我找到的这个解决方案。我需要定义元素的类型,我使用了 xPath
When (/^I click on "(.*?)"$/, (text) => {
return client
.useXpath()
.waitForElementVisible('//button[text()="'+text+'"]', 7000)
.click('//button[text()="'+text+'"]')
.useCss()
.pause(1000);
});