import cucumber.api.DataTable;не может быть решен - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь автоматизировать DataTables в Cucumber, где я написал соответствующую функцию и определение шага для нее. Eclipse предлагает импортировать io.cucumber.datatable.DataTable; и когда я использую метод raw (), eclipse выдает ошибку, говоря: «Метод raw () не определен для типа DataTable»

Feature : Then user enters username and password
| mngr193115 | edytadA |

Определение шага:

@Then("^user enters username and password$")
    public void user_enters_username_and_password(DataTable credentials) {
        //driver.findElement(By.linkText("ACCOUNT")).click();
        List<List<String>> data = credentials.raw();
        driver.findElement(By.xpath("//input[@type='text']")).sendKeys();       
        driver.findElement(By.name("password")).sendKeys(password);
    }

Ниже мой файл POM.xml

 <dependencies>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>4.3.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-jvm -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-jvm</artifactId>
    <version>4.3.0</version>
    <type>pom</type>
</dependency>

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.3.0</version>
    <scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-jvm-deps -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-jvm-deps</artifactId>
    <version>1.0.6</version>
    <scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/net.masterthought/cucumber-reporting -->
<dependency>
    <groupId>net.masterthought</groupId>
    <artifactId>cucumber-reporting</artifactId>
    <version>4.6.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-core -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-core</artifactId>
    <version>3.0.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/gherkin -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>gherkin</artifactId>
    <version>5.1.0</version>
</dependency>
<dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
     <version>3.141.59</version>
 </dependency>   
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-picocontainer -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>4.3.0</version>
    <scope>test</scope>
</dependency>
</dependencies>
</project>

ожидается - решить проблемы с импортом и импортировать cucumber.api.DataTable;

Actual - Eclipse предлагает импортировать import io.cucumber.datatable.DataTable; для DataTable и когда я импортирую то же самое, я не могу использовать метод raw ().

Ответы [ 3 ]

2 голосов
/ 10 мая 2019

Основная точка: Люди сталкиваются с несколькими ошибками (упомянутыми ниже), поскольку они смешивают прямые и переходные зависимости.Поэтому мы не будем смешивать прямые и переходные зависимости, особенно их версии!Это может привести к непредсказуемым результатам.

  • Не удается разрешить импорт cucumber.api.junit
  • java.lang.NoClassDefFoundError: gherkin / IGherkinDialectProvider
  • импорт огурца.api.DataTable;не может быть решена

Решение: Пожалуйста, удалите огурец-ява , ядро ​​огурца , огурец-jvm-deps, корнишон & джунит .Они являются переходными зависимостями и будут предоставлены вашими зависимостями.Вы можете добавить ниже набор минимальных зависимостей огурца.

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.3.0</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>4.3.0</version>
    <scope>test</scope>
</dependency>
0 голосов
/ 18 июля 2019

Добавление: затем пользователь вводит имя пользователя и пароль |mngr193115 |edytadA |

Из вашего вопроса выше было замечено, что вы использовали файл функций.Я согласен с тем, что вам нужно выполнить импорт для данных, и перед этим вы можете изменить файл функции на нижеприведенный, если не

Добавление: для проверки UN и Pwd

Сценарий: ScenarioName

Затем пользователь вводит имя пользователя и пароль

|mngr193115 |edytadA |

0 голосов
/ 09 мая 2019

I. опция

https://mvnrepository.com/artifact/io.cucumber/datatable-dependencies/1.1.12 https://mvnrepository.com/artifact/io.cucumber/datatable/1.0.3

<!-- https://mvnrepository.com/artifact/io.cucumber/datatable-dependencies -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>datatable-dependencies</artifactId>
    <version>1.1.12</version>
</dependency>



<!-- https://mvnrepository.com/artifact/io.cucumber/datatable -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>datatable</artifactId>
    <version>1.0.3</version>
</dependency>

II. опция Попробуйте обновить Java-зависимости Cucumber-Core и Cucumber до последних версий: https://mvnrepository.com/artifact/io.cucumber/cucumber-core/4.3.1

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-core</artifactId>
    <version>4.3.1</version>
</dependency>

https://mvnrepository.com/artifact/io.cucumber/cucumber-java

<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>4.3.1</version>
</dependency>

И после этого сделайте реимпорт maven. Надеюсь, это поможет

...