Новое в Cucumber: проблема с простой настройкой

Раньше я работал с Cucumber, но в уже настроенной среде на работе.

Сейчас я пытаюсь настроить среду Eclipse/Maven/Cucumber/Junit на своем компьютере.

Итак, я создал проект Maven и использовал один из перечисленных архетипов: «огурец-java-junit-архетип», просто чтобы заставить что-то простое работать, и в конечном итоге я запустил его раньше.

Итак, дальше я хотел попытаться добавить несколько шагов, использующих WebDriver, и нашел следующее:

https://www.browserstack.com/guide/automation-using-cucumber-selenium

Поэтому я добавил новый класс для этого примера, а затем в pom.xml добавил:

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>${selenium.version}</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-grid</artifactId>
        <version>${selenium.version}</version>
    </dependency>

но когда я пытаюсь построить проект, я получаю:

[ERROR] Failed to execute goal [32morg.apache.maven.plugins:maven-compiler-plugin:3.5.1:testCompile[m [1m(default-testCompile)[m on project [36mCucumberProject[m: [1;31mCompilation failure[m
[ERROR] [1;31m/E:/Eclipse-Cucumber-workspace/CucumberProject/src/test/java/FirstCucumber/CucumberProject/Steps.java:[5,27] cannot access org.openqa.selenium.By[m
[ERROR] [1;31m  bad class file: C:\Users\jl1\.m2\repository\org\seleniumhq\selenium\selenium-api\4.22.0\selenium-api-4.22.0.jar(org/openqa/selenium/By.class)[m
[ERROR] [1;31m    class file has wrong version 55.0, should be 52.0[m
[ERROR] [1;31m    Please remove or make sure it appears in the correct subdirectory of the classpath.

Кроме того, к вашему сведению, вот мой текущий pom.xml:

<?xml version = "1.0" encoding = "UTF-8"?>
<project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>FirstCucumber</groupId>
<artifactId>CucumberProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Cucumber-Java-JUnit Project</name>

<properties>
    <cucumber.version>1.2.4</cucumber.version>
    <java.version>1.8</java.version>
    <selenium.version>4.22.0</selenium.version>
</properties>

<dependencies>

    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>${cucumber.version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>${cucumber.version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>


    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>${selenium.version}</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-grid</artifactId>
        <version>${selenium.version}</version>
    </dependency>



</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <encoding>UTF-8</encoding>
                <source>${java.version}</source>
                <target>${java.version}</target>
                <compilerArgument>-Werror</compilerArgument>
            </configuration>
        </plugin>
    </plugins>
</build>
</project>

Я думаю, что, возможно, версия огурца, которую я использую, несовместима с версией селена? Мне не удалось найти какую-либо конкретную рекомендацию по версии, но я не думаю, что просто пробовать каждую комбинацию — хорошая идея :( !!

Может ли кто-нибудь помочь и сказать мне, как я могу обойти эту ошибку сборки?

Спасибо!!

Джим

РЕДАКТИРОВАТЬ 1: Я нашел эту страницу, и она показывает:

    <!-- Dependency versions -->
<cucumber.version>1.2.4</cucumber.version>
<selenium.version>2.48.0</selenium.version>
</properties>

Итак, я попробовал это, но теперь получаю другую ошибку:

Caused by: org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH. Make sure firefox is installed. OS appears to be: XP
Build info: version: '2.48.0', revision: 'b7b081a4f1289f17e8ecd38bc67e137c2a12e34a', time: '2015-10-07 09:50:14'
 System info: host: 'VOS', ip: '10.0.0.51', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_202'
Driver info: driver.version: FirefoxDriver
at org.openqa.selenium.firefox.internal.Executable.<init>(Executable.java:75)
at org.openqa.selenium.firefox.FirefoxBinary.<init>(FirefoxBinary.java:60)
at org.openqa.selenium.firefox.FirefoxBinary.<init>(FirefoxBinary.java:56)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:120)
at FirstCucumber.CucumberProject.Steps.<init>(Steps.java:19)
... 38 more

Обновлено еще раз: Я добился некоторого прогресса - я добавил путь для firefox.exe в Windows PATH, а затем отскочил от Eclipse, и когда я тестирую после этого, я получаю другую ошибку:

Build info: version: '2.48.0', revision: 'b7b081a4f1289f17e8ecd38bc67e137c2a12e34a', time: '2015-10-07 09:50:14'
System info: host: 'VOS', ip: '10.0.0.51', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_202'
Driver info: driver.version: FirefoxDriver
at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:135)
at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:271)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:117)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:216)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:211)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:207)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:120)
at FirstCucumber.CucumberProject.Steps.<init>(Steps.java:19)
... 36 more
Caused by: org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:

at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:123)
... 43 more

Кажется, что огурец/селен пытается подключиться к firefox.exe через порт 7055 на локальном хосте, но не может подключиться?

Я попытался открыть порт 7055 в брандмауэре Windows, но произошло то же самое.

Я не знаю, что теперь делать :( ....

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
107
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы ошиблись при решении проблемы после того, как получили сообщение об ошибке class file has wrong version 55.0, should be 52.0.

Это означает, что вы в настоящее время используете Java 8, которая поддерживает файлы классов до версии 52.0. Selenium ожидает, что вы используете как минимум Java 11 (версия файла класса 55.0). Поэтому вам следует убедиться, что версия Java, которую вы используете для запуска и компиляции вашего проекта, не ниже 11.

Кроме того, вы используете Cucumber v1. Cucumber v1 не работает ни с одной версией выше Java 8. Последняя версия Cucumber — v7, работает с Java 8 и любой более поздней версией.

Для начала попробуйте заставить работать последнюю версию Cucumber, следуя 10-минутному руководству или скопировав скелет проекта. После этого вы можете попробовать добавить Selenium в проект. При этом не забудьте использовать как минимум Java 11.

В этом случае вам все равно придется решить проблему соединения между Selenium и вашим драйвером Firefox, но ее будет легче решить, если вы используете последнюю версию Selenium и драйвер Firefox.

М.П. Корстанье - Вы совершенно правы. Почти вначале я пытался выполнить сборку с помощью Java 11, но столкнулся с проблемами, поэтому затем я отклонился от попыток найти конфигурацию, которая бы работала... бесполезно, да... Итак, можете ли вы сделать свой комментарий ответом, а затем Я приму это.

user555303 26.06.2024 13:23

Это ответ.

M.P. Korstanje 26.06.2024 14:57

Другие вопросы по теме