当前位置: 首页 > 知识库问答 >
问题:

cucumber类型不匹配:无法从元素类型映射转换为映射

阎宾实
2023-03-14

我试图通过使用多个测试数据在Cucumber DataTable中使用映射来自动化一个场景。在本测试中,我们将向测试步骤传递两次Username和Password。所以我们的测试应该输入用户名和密码一次,点击登录按钮,并重复相同的步骤再次。

我已经尝试使用for循环来使用Maps集合重复测试。1.我收到一个错误,表示类型不匹配:无法从元素类型map 转换为map 2。当我将其转换为map 时,我得到另一个错误,说明方法sendKeys(charSequence...)类型中的WebElement不适用于参数(Object)

    Feature File Scenario
    Scenario: Successful Login with Valid Credentials
     Given User is on Home Page
     When User Navigate to LogIn Page
     And User enters Credentials to LogIn
     | Username   | Password |
        | testuser_1 | Test@153 |
        | testuser_2 | Test@154 |
     Then Message displayed Login Successfully

Step Definition
//Maps in Data Tables with Multiple Test Data


    @Then("^user enters Credentials in LogIn$")
        public void user_enters_username_and_password(DataTable userCredentials) throws Throwable {
            //Write the code to handle Data Table
             for (Map<String, String> data : userCredentials.asMaps(String.class, String.class) ) {
            driver.findElement(By.xpath("//input[@type='text']")).sendKeys(data.get("username"));
            driver.findElement(By.name("password")).sendKeys(data.get("password"));
            }
        }

预期-从元素类型映射转换为映射实际-类型不匹配:无法从元素类型映射转换为映射

共有1个答案

酆奇文
2023-03-14

你能先把结果分配给中间变量吗?

List<Map<String, String>> rows = userCredentials.asMaps(String.class,  String.class);
for (Map<String, String> data : rows) {
  ...
}
 类似资料:
  • 我在解决泛型问题时遇到了一些麻烦。我有一个“猫”对象列表和一个“狗”对象列表,我需要将它们传递到同一个方法中。该方法的返回类型是一个“字符串”和“动物列表”的映射,我试图找出一种方法来将带有动物列表的映射转换为带有猫或狗列表的映射。 这工作很好,如果我有一个单独的方法猫和狗,但我正在寻找一个更灵活的解决方案。 标题中出现错误的行: 注意:这是一个简化的例子,我必须能够使用地图中的列表作为“猫”或“

  • 问题内容: 我有以下几行代码 我认为第3行和第4行执行相同的任务,然后为什么编译器在第4行显示错误“类型不匹配:无法从long转换为int” 请帮忙。 问题答案: 这是因为复合赋值运算符会进行隐式转换。 从JLS复合分配运算符: 形式的复合赋值表达式等效于,其中是的类型,不同之处在于该表达式仅被评估一次。 对于二进制运算符,则必须显式进行强制转换。进行第四项作业: 它会工作。这就是您的复合赋值表达

  • 问题内容: 我正在使用ZXING库在JAVA中创建QR码生成器程序。该程序是 编译该程序时,出现类型不匹配错误, 在这条线 请帮忙!!! 问题答案: 我自己从未使用过该库,但是阅读错误消息时,我会假设您必须要以字节为单位存储字节的问题。问题将是一个字节由多个位组成,因此您不能仅通过一位表示一个字节。 将编码数据存储到ByteMatrix中,然后阅读以下内容: 使用zxing进行QR码编码和解码 完

  • 但它抱怨说: 如何同时解决这两个错误?

  • 我在尝试使用JSON_serializable序列化从internet获取的复杂JSON并使用FutureProvider将它们连接在一起时遇到了这个问题。这是json文件, 这是包含序列化类的代码, 获取json文件并将其转换为dart的未来提供者, 这是基因编码, 这是转换后的json文件显示的代码 当我试着运行这个项目时,我遇到了这个错误 i/flutter(23347): type'Lis

  • 问题内容: 以下代码抛出编译时异常 类型不匹配:无法从整数转换为K 我了解的是应该处理任何扩展的价值。 (注意:这只是一个测试代码,用于提出我的问题,而没有提供与我的实际情况无关的详细信息。) 问题答案: 这里的问题是这样的事实:它是一个可扩展的类型,但它是该类型的一个 未知 子类,这就是为什么编译器会引发此错误,因为它只是该子类的一个特定子类,因此它无法与任何潜在的目标类型匹配,因此会引发此错误