151 次浏览
Cypress 别名是一个重要的组件,具有多种用途。它们列在下面 -共享上下文 我们必须使用 .as() 来为我们必须共享的内容创建别名。要为对象和基元创建别名,使用 Mocha 上下文对象。可以使用 - this.* 访问别名对象。Mocha 默认情况下为测试适用的所有钩子共享上下文,并且别名属性在测试执行后被清除。describe('element', () => { beforeEach(() => { cy.wrap('eleone').as('x') }) context('subelement', () => { beforeEach(() => { cy.wrap('eletwo').as('y') ... 阅读更多
503 次浏览
Scenario Outline 用于使用不同的数据集复制相同的场景。使用不同的值编写相同的测试既麻烦又费时。例如,我们可以使用 Scenario Outline 将上述两个场景组合起来。因此,我们看到 Scenario Outline 应该与 Examples 关键字一起使用。对于 Examples 段下面出现的每一行,Scenario Outline 都执行一次。此外,我们还看到 Given 步骤具有分隔符。它指向 Examples 表的标题。SpecFlow 将在匹配步骤的任务之前将这些值放入此表中…… 阅读更多
5K+ 次浏览
我们可以借助 Examples 关键字执行数据驱动测试。我们还将借助 Scenario Outline 关键字在多个值上执行相同的 Scenario。要考虑的数据集应在 Examples 部分下面逐个传递,并用 | 符号分隔。因此,如果有三行,我们将从单个场景执行三个测试用例。此外,Given 步骤具有分隔符。它指向 Examples 表的标题。SpecFlow 将在将步骤与…匹配的任务之前将这些值放入此表中…… 阅读更多
9K+ 次浏览
Background 关键字用于在 Feature 文件中所有 Scenario 之前复制相同的步骤。Background 规则 让我们描述一些应用 Background 时的规则 -除非我们被迫将应用程序带到需要执行复杂步骤的状态,否则应将其用于定义简单步骤。根据项目利益相关者的要求。它应该简短而现实。所有 Scenario 也应该简短明了。Background 示例 让我们来看一个示例,在这个示例中,我们使用了 Background 步骤,这些步骤在 Feature 文件中所有测试之前执行。为了… 阅读更多
250 次浏览
测试驱动开发也称为 TDD。它包含以下步骤,需要逐一遵循 -步骤 1 - 创建测试。步骤 2 - 验证测试是否失败。如果测试通过,则创建第二个测试。如果测试失败,则转到步骤 3。步骤 3 - 修复测试以使其通过。如果测试通过,则转到步骤 4。如果测试失败,则跳转到步骤 3。步骤 4 - 开始代码重构并重做所有上述步骤,直到开发完成。TDD 的好处 TDD 的好处列在下面 -开发人员需要理解需求才能知道… 阅读更多
1K+ 次浏览
要执行 Feature 文件,我们必须为每个步骤添加实现逻辑。要在 SpecFlow 中添加步骤的定义,使用 C# 语言。因此,步骤定义文件包含在类中用 C# 开发的方法。这些方法具有注释以及将步骤定义连接到每个匹配步骤的模式。SpecFlow 将运行代码以执行 Gherkin 中的关键字。步骤定义文件是应用程序接口和 Feature 文件之间的链接。为了提供可读性功能,步骤定义文件可以具有参数。这意味着它不是… 阅读更多
3K+ 次浏览
SpecFlow 测试执行从 Feature 文件开始。这里用纯文本解释了所有特性及其相应的场景。它具有作为自动化元素以及文档的双重作用。Feature 文件包含一个或多个场景,以列表的形式呈现。Feature 文件创建 创建 SpecFlow 项目后,转到解决方案资源管理器并展开它。右键单击 Features 文件夹。单击添加,然后选择新建项选项。出现添加新项弹出窗口。在搜索框中键入 SpecFlow Feature。从…中选择 SpecFlow Feature 文件选项 阅读更多
295 次浏览
我们可以在 Selenium webdriver 中处理框架。html 代码中的框架由 frames/iframe 标记表示。Selenium 可以通过将 webdriver 访问从主页面切换到框架来处理框架。处理框架的方法列在下面 -driver.switch_to_frame("frame name") - frame name 是框架的名称。driver.switch_to_frame("framename.0.frame1") - 用于通过点分隔路径访问框架中的子框架。在这里,它将指向名为 frame1 的框架,它是名为 framename 的框架的第一个子框架。driver.switch_to_default_content() - 用于将 webdriver 访问从框架切换到… 阅读更多
我们可以使用 Java 在 Selenium webdriver 中处理身份验证弹出窗口。为此,我们必须在 URL 中传递用户凭据。我们必须将用户名和密码添加到 URL。语法 -https://username:password@URL https://admin:admin@the-internet.herokuapp.com/basic_auth 在这里,admin 是用户名和密码。URL – www.the-internet.herokuapp.com/basic_auth 让我们操作并接受下面的身份验证弹出窗口。示例代码实现。import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class AuthnPopup{ public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe"); WebDriver driver = new ChromeDriver(); String u = "admin"; ... 阅读更多
687 次浏览
我们可以使用 Java 在 Selenium 中向下滚动网页。Selenium 本身无法直接处理滚动。它借助 Javascript 执行器来执行滚动操作到某个元素。首先,我们必须定位要滚动到的元素。接下来,我们将使用 Javascript 执行器运行 Javascript 命令。`executeScript` 方法用于在 Selenium 中运行 Javascript 命令。我们将借助 Javascript 中的 `scrollIntoView` 方法,并将 `true` 作为参数传递给该方法。语法 −WebElement elm = driver.findElement(By.name("name")); ((JavascriptExecutor) driver) .executeScript("arguments[0].scrollIntoView(true);", elm);示例import ... 阅读更多