Cucumber 新手 - 尝试进行简单设置时遇到问题

问题描述 投票:0回答:1

我之前曾使用过 Cucumber,但工作环境已经设置完毕。

我现在正在尝试在自己的计算机上安装 Eclipse/Maven/Cucumber/Junit 环境。

因此,我创建了一个 Maven 项目,并使用了列出的原型之一“cucumber-java-junit-archetype”,只是为了让一些简单的工作正常工作,最终我让它更早地工作了。

接下来我想尝试添加一些使用 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>

我想也许我使用的cucumber版本与selenium版本不兼容? 我还没有找到任何具体的版本推荐,但我认为尝试每种组合似乎并不是一个好主意:(!!

有人可以帮助并告诉我如何克服该构建错误吗?

谢谢!!

吉姆

编辑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

编辑2:我取得了一些进展 - 我将 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

黄瓜/硒似乎正在尝试连接到本地主机上端口 7055 上的 firefox.exe,但无法连接?

我尝试在 Windows 防火墙中打开端口 7055,但发生了同样的事情。

我不知道现在该怎么办:( ....

eclipse selenium-webdriver cucumber
1个回答
0
投票

在出现以下错误后,您解决问题的方式走错了

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 添加到项目中。

© www.soinside.com 2019 - 2024. All rights reserved.