繁体   English   中英

Nightwatch + Cucumber 如何描述通用步骤

[英]Nightwatch + Cucumber How to describe a generic step

我正在使用守夜人和黄瓜编写一些 e2e 测试。 我想要一个泛型步骤。 现在,我的步骤定义是这样的:

 When (/^I click on 'Leave a comment'$/, () => {
    return client
    .click('a[id="leave-comment"]')
  });

我想要一些像:

When (/^I click on  "(.*?)"$/, (text) => {
 ...
});

但是我无法使用.click 实现这一步。 任何的想法?

我个人并不使用 Nightwatch,但我发现了一些适合您的东西。

查看: Nightwatch 自定义命令和断言

它将为您提供的功能之一是jqueryClick ,它将使您能够执行此操作:

When(/^I click on the link with text "(.*?)"$/, (text) => {
    return client.jqueryClick('*:contains('+text+')');
});

它将所有jQuery 选择器添加到您的武器库中,使编写自动化变得更加容易。

应该做的工作

this.When('I click the "$element" element', (browser, element) => {
     browser.click(element)   
 });

如果您使用页面对象,您将需要创建更复杂的函数,但这个函数适用于 common 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);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM