说明:
在Gherkin语法的教程中,您经常会看到单击特定页面上的按钮的示例,例如:
Given (something)
When I click the submit button
Then (something)
实现这一步的步骤定义非常简单-只需让selenium用任何与按钮匹配的css-selector定位元素,然后让selenium单击它。
问题示例:
假设我们有3个页面,其中都有一个“Next”按钮,该按钮在每个页面上执行完全不同的操作,并且在DOM中的位置也完全不同。假设每个页面都有一个特性。在每个特性中,涉及“Next”按钮的场景如下所示:
Given I am on page xyz
And ...
And I click the next button
And ...
When ...
Then ...
问题是,在第一页,“Next”按钮可能由“.next-button”定位,在第二页,它可能是“#SomeContainer.btn.btn-primary”,而在第三页,它可能是“#AssetButtons li:nth-child(3)”。如果我们对每个特性都有一个局部的步骤定义,它们可以简单地看起来像:
this.Given(/^I click the next button$/, function(callback) {
this.driver.findElement(this.webdriver.By.css(”.next-button”).click();
callback();
});
this.Given(/^I click the next button$/, function(callback) {
this.driver.findElement(this.webdriver.By.css(”#someContainer .btn.btn-primary”).click();
callback();
});
this.Given(/^I click the next button$/, function(callback) {
this.driver.findElement(this.webdriver.By.css(”#assetButtons li:nth-child(3)”).click();
callback();
});
但是怎样做才是正确的方法呢?
说你“点击提交按钮”是不好的小cucumber。你想写陈述句,陈述你在做什么,但不是你是如何做的。像“点击这个按钮”这样的祈使句不应该在你的测试设计中找到。我理解你的观点,即能够以不止一种方式做事,在这种情况下,这是一个重要的细节,但尽可能抽象。
你说你有三个next按钮,做三个完全不同的事情,在你的小cucumber里说出这些动作
When I advance the image carousel
When I go to the next news page
When I view the next page of search results
至于不同的路径...
When I swipe to view the next page of search results
When I use the keyboard to view the next page of search results
When I click on the next link to view the next page of search results
问题内容: 有没有办法为特定的浏览器加载不同的CSS文件? 像(伪代码差): 问题答案: 您想要的理想解决方案不存在: 不幸的是,如果您尝试在HTML本身上进行操作,则不存在跨浏览器解决方案。但是,它将适用于大多数版本的IE。像这样: 所以最好的解决方案是: 这样的Javascript解决方案怎么样:浏览器检测。阅读有关此类的内容以更好地弄清该文件的基本作用,就是这样的概念: 显然,它不仅可以检测
我有相同的图像和相同大小的画布,但是输出是不同的。我想要同样的输出,该怎么做呢?
问题内容: 我正在写一个基于AJAX / COMET的在线聊天室。我的设计是: 请求 -----------------等待------------------------->发送转储数据 -----------------等待------------------------->发送转储数据 -----------------等待------------------------->发送转储数据 -
我有一个有很多功能的项目,我想在不同的浏览器中并行运行一个测试,使用cucumber jvm插件 在我的POM里。XML i添加了cucumber jvm和maver surefire两个插件 我创建runnerClass并添加: 现在,我无法运行测试,如何使用cucumber jvm或selenium网格并行运行浏览器中的不同功能
背景: 项目: PC端 vue3+ vite 背景: 有的时候测试的时候需要测试不同版本的谷歌浏览器的兼容情况,但是在电脑上只有一个版本的谷歌浏览器,在想有什么办法能在自己电脑上测试不同版本谷歌浏览器的运行情况。
问题内容: 我找不到有关如何进行设置的任何信息,但这似乎是一个非常基本的概念,所以我敢肯定有一个答案。 我知道如何通过在配置中设置对象的属性来在不同的浏览器上运行量角器。而且效果很好。我可以将其设置为or 或我需要的任何值,并且它可以按预期运行。但是,对多个浏览器运行单个测试套件的唯一方法(据我所知)是创建单独的配置文件,每个配置文件具有不同的配置文件,然后使用各自的配置运行每个浏览器。这行得通,