问题标签 [cucumber-serenity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
454 浏览

protractor - 如何使用 chai 断言和宁静比较两个定位器值

我是 Serenity 和 Protractor 的新手,因此需要您的帮助来完成以下查询。使用 - Protractor、Chai 断言、Screenplay serenity、Cucumber、TypeScript

我的定位器文件中有以下 2 个定位器:

static test1 = Target.the("test1).located(by.xpath(...**...);

static test2 = Target.the("test2).located(by.xpath(...**...);

我必须比较 test1 和 test2 的值。

Steps.ts 文件:

expect(actor.toSee(Text.of(locatorClass.test1))).to.eventually.equal("21");

如果我传递一些恒定值,它就可以工作。但我必须通过其他定位器。如何比较这两个定位器?

0 投票
1 回答
872 浏览

serenity-bdd - Serenity Cucumber Spring 版本兼容性

我正在尝试将 Serenity 与 Cucumber 和 Spring 一起使用,但由于此异常,我无法启动应用程序:

这是我的build.gradle样子:

我只能访问私有 Nexus 存储库以获取依赖项,以及serenity-springis1.8.21和 for serenity-cucumberis的最新版本1.6.10

下面是 Runner 类的样子:

我只能找到似乎过时的文档:http: //thucydides.info/docs/serenity-staging/#_building_serenity_projects_in_gradle

0 投票
1 回答
489 浏览

jenkins - 如何让 Jenkins 的宁静 bdd 工作失败?

我有一个快速的问题 - 我正在 Jenkins CI 上运行 Serenity BDD 测试。我想知道如果功能场景中出现故障(或一般的任何故障),这里是否有人知道如何让詹金斯在 CI 上的工作失败。此外,如果有人可以让我知道我如何根据阈值使 Jenkins Serenity BDD 作业失败(即仅在超过 80% 的错误时使构建失败),那就太好了。非常感谢 !!!

0 投票
1 回答
1242 浏览

java - Selenium 通过另一个元素在表中查找一个元素?

我试图通过一个元素在表中找到一行,然后在该行中找到一个元素并返回一个属性(或做其他事情)。

这里的java selenium 代码找到了一个表体。getText() 准确地打印出每一行的行中的文本,但 s.findElement(xpath).getText() 将返回 unique_cell_name 行是否包含它。并且 if 语句将在每个循环中输入。

我如何解决它?为什么 getText() 返回正确的文本但我在同一个 rowElement 中找不到元素?

我在 java 中使用 selenium 2.53 和 serenity/cucumber。

0 投票
1 回答
685 浏览

cucumber - 如何在每个场景之后执行拆卸以释放资源 In serenity BDD with Cucumber

我正在将 Serenity 与 BDD 一起使用,并且需要执行一个拆卸步骤,该步骤必须在每个场景完成后执行。此外,这个拆卸步骤不应该被报告,因为它是技术问题,与作为黄瓜的一部分暴露的行为无关,例如释放一些昂贵的资源

我使用了黄瓜的@After注释,它按预期工作,但问题是现在这一步也显示在我的报告中,我不想被看到。

有人可以向我建议一个解决方案,该解决方案允许我执行每个场景执行的拆卸步骤,但不应将其添加为我的 Serenity 报告中的步骤。

我目前的解决方案不能满足我的需要:

步骤定义类有以下方法:

但是@After注释使它成为报告步骤的候选者。

0 投票
1 回答
7431 浏览

maven - 使用 Maven/Cucumber/Serenity 重新运行失败的场景

有没有人使用 maven surefire 插件或任何其他机制来重新运行失败的场景。我正在使用带有 Serenity 和 Maven 的 Cucumber。我尝试了以下不同的方法,以便在没有任何手动干预的情况下重新运行失败的场景
例如:如果 5 个测试用例中有 2 个测试用例出现错误,那么我的脚本应该在生成最终的宁静报告之前自动执行这 2 个失败的场景
1. Maven surefire
我在 pom.xml 文件中添加了以下行


或者

然后我尝试执行以下命令(我的场景由@RunThis 标签注释)

mvn -Dcucumber.options="--tags @RunThis" -Dfailsafe.rerunFailingTestsCount=2 test

执行上述命令后,我希望失败的场景应该再次执行,但它不会重新执行

2.使用黄瓜格式化程序生成rerun.txt并执行它
根据另一个解决方案,我使用黄瓜格式化程序生成rerun.txt。出现错误的场景将在 rerun.txt 中列出,然后应该由第二个跑步者类拾取并执行那些失败的场景。
我能够成功生成 rerun.txt 但第二个跑步者类既没有被执行也没有我得到任何类型的错误

跑步者1级

RunnerClass 2

3. 使用@ExtendCucumberOptions
根据另一种解决方案,我们可以在 pom.xml 文件中添加以下依赖项

那么我们的runner类应该是这样的

然后我再次执行命令
mvn -Dcucumber.options="--tags @RunThis"
我看不到失败的场景正在重新执行


完整的 POM.xml 文件

0 投票
0 回答
1739 浏览

cucumber - 无效的 END 标头(错误的中央目录偏移)-> [帮助 1] [错误]

当我尝试使用 eclipse maven install 从 GitHub https://github.com/mkolisnyk/cucumber-reports构建黄瓜报告时,我得到:

[错误] 无法解析 org.apache.maven.plugins:maven-checkstyle-plugin:2.10 的插件描述符 (C:\maven2\repository\org\apache\maven\plugins\maven-checkstyle-plugin\2.10\maven- checkstyle-plugin-2.10.jar): 无效的 END 标头(错误的中央目录偏移)-> [帮助 1] [错误]

[错误] 要查看错误的完整堆栈跟踪,请使用 -e 开关重新运行 Maven。[错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。[ERROR] [ERROR] 有关错误和可能的解决方案的更多信息,请阅读以下文章: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginDescriptorParsingException

0 投票
1 回答
982 浏览

protractor - 用于验证元素是否存在用于量角器宁静的语法

检查元素是否存在的语法是什么?我需要检查该元素是否存在以便在我的测试中走得更远。如果该元素不存在,我想执行一些其他操作。

这就是我正在尝试的,但语法在平静中不起作用:

我不确定要在退货中添加什么??

0 投票
1 回答
104 浏览

typescript - 将 typescript 中的 html 标识符从 cucumber .feature 文件解析为 pageobject 文件的函数

附上我的下拉列表和文本框的图像示例帐户列表我有一个下拉列表和一个文本框,我想创建一个 Pageobject 函数来解析 .css 或类 html 标识符并用“ - ”分割它,例如:

我有一个黄瓜.feature文件可以做到这一点

所以在这里我说找到帐户名称列并在下拉列表中选择一个值,然后在文本框中输入一个值,理论上如果我让开发人员为下拉列表和文本框创建一个类似于此的 html 标识符: (特别是带有 accountName 的标识符)

这是我的步骤定义:

我有一个任务文件,其中包含选择下拉列表并在此处的文本框中输入数据的类:

我想我可以像这样制作一个pageoject函数

但是在我找到列名后将调用该函数

这就是我迷失了如何制作一个函数来说“嘿,从.feature文件中获取列名并将其解析为 html 提供的内容(即:将帐户名称解析为帐户名称)

0 投票
0 回答
484 浏览

java - Selenium 尝试在几个步骤后启动新驱动程序

我在网页上运行一些自动化测试时遇到了一些问题。测试用例很简单:导航到登录页面,输入用户名和密码,单击登录,然后对主页中的元素进行断言。

单击“登录”按钮后,问题就开始了。该项目设置如下:

  • java语言
  • 行家项目
  • 黄瓜
  • 网络驱动管理器
  • 宁静
  • 春天
  • 操作系统:Ubuntu 16.04 LTS

我的测试跑步者与@RunWith(CucumberWithSerenity.class)

我有一个 StepsContext :

宁静页面配置如下所示:

和宁静的配置文件:

我为 webdriver 设置使用通用页面:

这些步骤是使用页面对象工厂模型组织的。

现在解决手头的问题:通过上述设置,测试单击“登录”按钮后(因此它已经经历了 4 个步骤),控制台读取并且在登录后显示的页面上没有执行任何操作:

INFO 7374 --- [main] org.openqa.selenium.Capabilities :new ChromeOptions()首选使用DesiredCapabilities.chrome()

错误 7374 --- [main] ntcore.webdriver.WebDriverFacade:无法创建新的 WEBDRIVER_DRIVER 实例类 org.openqa.selenium.chrome.ChromeDriver:无法实例化类型为 org.openqa.selenium.chrome.ChromeDriver 的新 WebDriver 实例( chromedriver 驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置;有关更多信息,请参阅https://sites.google.com/a/chromium.org/chromedriver/downloads。最新版本可以是从https://sites.google.com/a/chromium.org/chromedriver/downloads下载

...虽然我正在使用 webdriver manager 来获取二进制文件。

如果我从 serenity 配置文件中注释掉以下部分:

单击“登录”后,它会打开 Mozilla Firefox,而无需在其中执行任何操作,控制台显示:

INFO 7886 --- [main] org.openqa.selenium.Capabilities :new FirefoxOptions()首选使用DesiredCapabilities.firefox()

INFO 7886 --- [main] org.openqa.selenium.Capabilities :new FirefoxOptions()首选使用DesiredCapabilities.firefox()

错误 7886 --- [main] ntcore.webdriver.WebDriverFacade:无法创建新的 WEBDRIVER_DRIVER 实例类 org.openqa.selenium.firefox.FirefoxDriver:无法实例化类型为 org.openqa.selenium.firefox.FirefoxDriver 的新 WebDriver 实例( Firefox 启动等待 45 秒超时。

项目中没有提到 Firefox,甚至没有将其标记为系统的默认浏览器。让我知道是否需要有关网页本身的任何其他信息或其他信息,因为我对此一无所知。

谢谢!