Java 在Cucumber表中使用元素定位器

Java 在Cucumber表中使用元素定位器,java,selenium,cucumber,gherkin,Java,Selenium,Cucumber,Gherkin,我有一个登录测试,使用cucumber中的表运行正面和负面场景 场景大纲:登录 Given User navigates to Field And User enters a "<Username>" username And User enters a "<Password>" password When User clicks on the login button Then User should see the "<message>" Example

我有一个登录测试,使用cucumber中的表运行正面和负面场景

场景大纲:登录

Given User navigates to Field
And User enters a "<Username>" username
And User enters a "<Password>" password
When User clicks on the login button
Then User should see the "<message>"

Examples:
  | Username | Password  | message |
  | name  | pwd | Logout |
  | name1 | pwd1 | Your login name or password is incorrect.|
给定用户导航到字段
用户输入一个“”用户名
用户输入“”密码
当用户单击登录按钮时
然后,用户应看到“”
示例:
|用户名|密码|消息|
|名称| pwd |注销|
|名称1 | pwd1 |您的登录名或密码不正确|
我现在用“消息”断言它


我的问题是:是否可以使用xpath或其他元素定位器进行断言?这是一种推荐的方法还是应该为每种情况创建不同的场景?

是否可以使用xpath或其他元素定位器进行断言

是的,这是可能的

您可以这样断言:

String successMsg = driver.findElement(By.xpath("some xpath")).getText();
而且您已经预期了msg(意味着您已经知道应该预期的内容)

现在你要做的就是比较这两个字符串

testng中,类似于:

Assert.assertEquals(预期为successsg)
将完成此工作

参考:


是否可以使用xpath或其他元素定位器进行断言

是的,这是可能的

您可以这样断言:

String successMsg = driver.findElement(By.xpath("some xpath")).getText();
而且您已经预期了msg(意味着您已经知道应该预期的内容)

现在你要做的就是比较这两个字符串

testng中,类似于:

Assert.assertEquals(预期为successsg)
将完成此工作

参考:


不要在一个场景中合并有效或无效案例。在几乎所有情况下,都会有不同的页面流。你将需要处理它与如果条件考虑到这一点。将它们分开,避免复杂性


将它们分开的另一个优点是,如果您只想运行有效的案例。只需在该场景上添加一个标记,并在运行程序中提及它。

不要在一个场景中组合有效或无效的案例。在几乎所有情况下,都会有不同的页面流。你将需要处理它与如果条件考虑到这一点。将它们分开,避免复杂性

将它们分开的另一个优点是,如果您只想运行有效的案例。只需在该场景上贴上标签,并在跑步者中提及即可